Hilfe!!!
-
Hallo!
Ich schreibe ein Programm,das soll in der Lage sein nach den von Benutzern definierten Kriterien (Überschrift, Anzahl der Seiten, Größe der Seiten u.s.w ...) eine Benutzeroberfläche zu generieren.da habe ich mir gedacht, das wäre was mit MDI zu tun, ich weiß aber nicht wie ich Anzahl der Seiten und Größe der Seiten zu programmieren habe.Mit MDI kriege ich viele Fenster(da dachte ich mir, das wäre doch eine Seite),aber bei Speicherung kann ich nur aktuelle Fenster speichern.Geht es irgenwie anders?
Nach meiner Vorstellung sollte es so ähnlich wie Word aussehen, aber View Klasse sollte nicht von CEditView abgeleitet werden.Bitte helfen sie mir!!!
Ich weiß nicht womit ich anfangen soll.
Alles was unter ... steht habe ich schon im Griff
Also es geht nur noch um sch.. Seiten.
Voraus DANKE!
-
da müßte ich selber erstmal nachschauen.
Größe? : PreCreate irgentwas mit Struct da kan man die Größe der Childs beinflussen und deren Startpositon.
Anzahl? : CreateNewChild
-
BOOL CChildFrame::PreCreateWindow(CREATESTRUCT& cs) { // ZU ERLEDIGEN: Ändern Sie hier die Fensterklasse oder das Erscheinungsbild, indem Sie // CREATESTRUCT cs modifizieren. cs.x=10; cs.y = 20; cs.cx = 200; cs.cy=150; if( !CMDIChildWnd::PreCreateWindow(cs) ) return FALSE; return TRUE; }
für die Größe
Hab nur den Code richtig formatiert,hattest nen Fehler drin!
Es muss heissen [code type="C++" tabs="4"] Du hattest das S vergessen[ Dieser Beitrag wurde am 07.08.2002 um 08:29 Uhr von C-O-M-M-A-N-D-E-R editiert. ]
-
Jo hat ja ganz schön gedauert
Anzahl:
im MainFrame machst du eine eigene Methode z.B New() void CMainFrame::New() { for (int n=0; n<=20;n++) { CMDIChildWnd* pActiveChild = MDIGetActive(); CDocument* pDocument; if (pActiveChild == NULL || (pDocument = pActiveChild->GetActiveDocument()) == NULL) { AfxMessageBox(AFX_IDP_COMMAND_FAILURE); return; } CDocTemplate* pTemplate = ((CMDApp*) AfxGetApp())->pDocTemplate; ASSERT_VALID(pTemplate); CFrameWnd* pFrame = pTemplate->CreateNewFrame(pDocument, pActiveChild); if (pFrame == NULL) { AfxMessageBox(AFX_IDP_COMMAND_FAILURE); return; } pTemplate->InitialUpdateFrame(pFrame, pDocument); } } Im ChildFrame überschreibst du FileNew #include "MainFrm.h" void CChildFrame::OnFileNew() { CMainFrame* pFrame = (CMainFrame*) AfxGetApp()->m_pMainWnd; pFrame->New(); }
in dem Beispiel erstellt er 20 "Kinder"
-
das hatte ich noch vergessen das was in der Methode New steht funkts bei VC++ 6 wenn bei VC++ 7 MDI Child's anders erstellt werden funkt das so nicht muß man was umändern.
-
Hallo WurstNuss
hab' so gemacht wie du beschrieben, mit der Größe funktionier aber bei
Funtion New()kommt Fehler'CMDApp' : undeclared identifier
Wie kann ich das korregieren?
-
Mein Anwendung heißt MD
wenn deine Anwendung Login heitß muss da CLoginApp stehen.
Eins hab ich noch vergessen
BOOL CMDApp::InitInstance() { ... CMultiDocTemplate* pDocTemplate; // das must du da rauskopieren und in den Header eintragen und public machen. }
funkt alles???
[ Dieser Beitrag wurde am 07.08.2002 um 10:58 Uhr von WurstNuss editiert. ]
-
Hallo WurstNuss
Es funk alles, aber es werden 20 neue Fenster erzeugt, die fon Inhalt sich nicht unterscheiden, ich dagegen wolte das neue Fenster leer rauskommt, wie kann ich das machen? Alles davor löschen...oder?