ChildFrame erstellen / zerstören / grösse definiert
-
Nachdem sich das Problem mit dem erstellen eines Diologs gelöst hat, habe ich jetzt ein weiteres Problem.
Ich arbeite jetzt mit mehreren Dokumentaen (MDI) und der Basisklasse CFormView.
Wenn ich gerade nachdem erstellen eines neuen Projekts kompiliere und ausführe, wird das GUI dargestellt wie auf dem Bild.
http://www.cyberlounge.ch/other/chris/bilder/testprojekt_3.gifProblem:
Ich will aber, dass das ChildFrame das ganze MainFrame ausfühlt (Siehe Bild).
Wie kann ich das realisieren bzw. welchen Befehl muss ich einfügen?
http://www.cyberlounge.ch/other/chris/bilder/testprojekt_4.gifWenn das ChildFrame das ganze MainFrame ausfühlt, würde ich gerne mit Hilfe eines Buttons ein neues ChildFrame erstellen. Beim erstellen soll sich das ChildFrame, welches das neue aufgerufen hat, schliessen und das aufgerufene Frame soll wieder das ganze MainFrame ausfühlen.
Also ich habe es bereits geschaft ein neues ChildFrame zu erzeugen, dass war nicht schwirig, aber leider hat sich das andere nicht geschlossen sondern ist inaktiv im Hintergrund gewessen. Zudem hat man das neue ChildFrame aus dem Bereich des alten ziehen können (siehe Bild).
http://www.cyberlounge.ch/other/chris/bilder/testprojekt_5.gif
Das würde ich auch gerne verhindern.
Kann mir jemand helfen, Tipps, Code, Anleitung, Tutorials (de) ??? ich wäre sehr sehr dankbar.mfg cschmid
-
Hi!
Probier mal in InitInstance in der App Klasse folgendesif(cmdInfo.m_nShellCommand == CCommandLineInfo::FileNew) { cmdInfo.m_nShellCommand = CCommandLineInfo::FileNothing; } m_nCmdShow = SW_SHOWMAXIMIZED; //EIGENER CODE // Verteilung der in der Befehlszeile angegebenen Befehle if (!ProcessShellCommand(cmdInfo)) return FALSE;mfg
-
danke ich werde es mal versuchen.
-
also ich habe nicht ganz geschnallt wo ich diesen code hineinschreiben muss.
aber das hauptsächliche problem ist, dass ich einfach kein gui zu stande bring, welches mir am anfang ein childframe anzeigt und ich per button ein neues erstellen kann. das alte sollte sich natürlich schlissen und de neue childframe sollte das mainframe ausfühlen.
ich vermute, dass dies recht einfach ist, aber ich einfach am falschen ort suche.
also wenn jemand ein programm besitzt, welches das oben beschriebe ausführt, wäre ich ihm sehr dankebar, wenn er mir das mailen würde. chris@cyberlounge.ch DANKE
-
cschmid schrieb:
Also ich habe es bereits geschaft ein neues ChildFrame zu erzeugen[...]. Zudem hat man das neue ChildFrame aus dem Bereich des alten ziehen können (siehe Bild).
http://www.cyberlounge.ch/other/chris/bilder/testprojekt_5.gifDas, was du als zweites ChildFrame bezeichnest, ist ein modaler Dialog.
Ich weiß jetzt leider nicht, was richtig ist, das Bild oder dein Text - deswegen warte ich mit weiteren Ratschlägen lieber, bis du genauer erklärt hast, was du genau möchtest.
-
also ich habe den zwei frames namen gegeben.
ich möchte ein gleiches frame wie das frame nr. 1.
dieses sollte sich im mainframe (also am gleichen ort wie frame nr. 1) öffnen.
und das frame nr. 1 sollte sich schliessen.was ist der unterschied zwischen einem childframe und einem modalen dialog?
-
hier noch das bild mit den nummern.
http://www.cyberlounge.ch/other/chris/bilder/testprojekt_6.gif
-
Der Unterschied ist die Basisklasse (grob betrachtet). Vielleicht solltest du dir mal ein Tutorial ansehen, da eine ausführliche Erklärung ziemlich lang werden würde.
Frame nr. 1 hat die Basisklasse CFormView. Frame nr 2. hat die Basisklasse CDialog - es sollte aber CFormView sein.
Das zu kitten wird glaubich schwierig. Der dreisteste Ansatz wäre: Basisklasse einfach umändern und nach und nach die Fehler beheben. Vorsicht: Das wird schwierig.
Besser ist: Bei Codeproject und in der MSDN gucken und die Beispiele nachmachen.
Forsche mal zu den Themen: Switch Views, CMultiDocTemplate, OnFileNew in MDI, OnFileClose in MDI. Debuggen ist auch ganz hilfreich dabei. So hab ich das rausgepuzzelt.
Ich könnte dir auch ein Projekt von mir schicken, ich habe das gerade gemacht, aber das ist echt viel zu erklären.
Wenn du wirklich nichts findest, kann ich mal sehen, ob ich über das Wochenende was schreiben kann, das alles beschreibt.
Viel Erfolg
-
ok vielen dank. hast du zufälligerweise internetadressen von tutorials, die du empfehlen kannst?
-
jo wäre toll, wenn du mir dein projekt schicken könntest. dann hätte ich auch ein codebeispiel. danke
-
Empfehlenswertes Tutorial: http://www.henkessoft.de/
Für Englischkönner sehr ergiebig: http://www.codeproject.com/
Speziell für deinen Fall: http://www.codeproject.com/docview/Wohin soll ich mein Projekt schicken? Du zeigst hier keine Mailadresse.
Ich kann dir dann ja auch meine Bookmarks mitschicken, die ich schon so gefunden habe.
-
danke
jo schick einfach alles was du so über das thema hast. dann hab ich genug zum lesen/lernen. am besten einfach ein zip file
email: chris@cyberlounge.ch
vielen dank