MDI in SDI Appliaktion
-
Schau Dir an wo die Tab-Leiste als Objekt liegt,
Genau das ist mein Problem. In CMainframe kann wird die Funktion EnableMDITabbedGroups() aufrufen. Diese Funktion stammt aus der Basisklasse CMDIFrameWndEx.
Auf das Objekt selber habe ich keinen Zugriff. Ich kann zwar ebenfalls aus der Basiklasse die Funktion GetMDITabs() aufrufen und erhalte dann ein CMFCTabCtrl. Diese Klasse bietet die Funktion HideSingleTab(BOOL bhide =1) auch an. Allerdings funktioniert das so nicht.
CMFCTabCtrl &tabctrl = GetMDITabs(); tabctrl.HideSingleTab(1);
-
bienchen schrieb:
Diese Klasse bietet die Funktion HideSingleTab(BOOL bhide =1) auch an. Allerdings funktioniert das so nicht.
CMFCTabCtrl &tabctrl = GetMDITabs(); tabctrl.HideSingleTab(1);Was funktioniert wie so nicht?
Kristallkugel habe ich keine?
-
Also ich ich habe in der Klasse CMainFrame in der Funktion OnCreate direkt nach EnableMDITabbedGroups(TRUE, mdiTabParams); -> GetMDITabs().HideSingleTab(); aufgerufen. Wenn ich das Programm starte wird mir aber trotzdem gleich der erste Tab angezeigt.
-
Zu dem Befehl gibt es auch keine Treffer im Internet ausser dem MSDN. Und da steht halt kein Beispiel.
-
Kann mir hider denn keiner weiterhelfen. Ich habe schon überall gesucht. Letzte Hoffnung dieses Forum.
-
Wenn es keine Doku gibt, schau Dir den Source Code der MFC an. Das ist oft eben die einzige Doku.
-
Ja toll wenn es aber zu der Funktion nur die Deklaration gibt und nicht die Definition, kann ich mir auch nichts ansehen.
-
bienchen schrieb:
Ja toll wenn es aber zu der Funktion nur die Deklaration gibt und nicht die Definition, kann ich mir auch nichts ansehen.
Entschuldige mal. Du hast die gesamten MFC Sourcen auf Deinem Rechner.
Du kannst sogar in die Funktion debuggen. Du kannst direkt sehen was die gesett Variable tut.
-
Hast recht. Blödes Intelisense. Gehe zu definition bringt einen immer zur Deklaration. Beim Debuggen habe ichs gefunden. Hat mich bisher zwar nicht weitergebracht. Tja hilft mir aber ja nun nichts anderes übrig als weiterzusuchen

-
Dieses Problem hatte ich auch schon mal. Ich habe auch ewig daran rumgedoktert leider ohne Erfolg. Entweder ein Bug von MFC oder wir sind zu blöd dafür.
-
Das kann doch nicht sein, dass dies nicht funktionert. Hat das noch wirklich gar niemand hingebracht?
-
Hast du schon mal getestet was für eine Adresse dir GetMDITabs(); Ist es dieselbe auf die die anderen Funktionen auch zugreifen?
-
Stimmt. Die Adressen sind unterschiedlich. Das heißt ich greife auf ein ganz andere Tabgruppe zu wie die, die angezeigt wird. Ich habe darauf nun auch mal versucht andere Befehle drauf abzusetzen. z.B. SetActiveTab(int i). Funktioniert auch nicht. Jetzt weiß ich nur nur noch nicht wie ich an die richtige Tabgruppe gelange. Kann mir da auch noch jemand helfen?