CreateMDIWindow - ANDERES PROBLEM JETZT
-
Hallo!
Wenn ich ein MDI Fenster per CreateMDIWindow erstelle und als LPARAM 0 angebe und bei WM_CREATE der MDIFensterklasse folgendes ausführe:i = (int)((LPCREATESTRUCT)lParam)->lpCreateParams;müsste doch in i 0 stehen, tuts aber nicht...bei normalen Fenstern ging das bisher immer....und das CreateStruct ist richtig, da das darin enthaltende Parentwindow auf das Parentwindow des MDIChilds zutrifft...wisst ihr was ich falsch mache? Habe auch bei der Fesnterklasse Extraspeicher reserviert...die MSDN hat mich leider auch nicht schlauer gemacht.
Kevin
-
If the window being created is an multiple-document interface (MDI) window, this member contains a pointer to an MDICREATESTRUCT structure.
Also dann wohl irgendwie so (aus dem Kopf heraus):
((LPMDICREATESTRUCT)((LPCREATESTRUCT)lParam)->lpCreateParams)->lParam;
-
Ich glaube lpCreateParams ist ein Zeiger auf ein MDICREATESTRUCT Objekt.
In der CREATESTRUCT Dokumentation steht:
lpCreateParams
...
If the window being created is an multiple-document interface (MDI) window, this member contains a pointer to an MDICREATESTRUCT structure.
-
jo richtig, ich sollte die MSDN wohl mal gründlicher lesen

Danke!
-
Wollte nicht extra einen neuen Thread eröffnen! Ich will meine MDIFenster ohne Titelleiste, CreateMDIWindow schmeißt mir aber einfach eine dazu, sehr freundlich...jetzt nehm ich den Titelleisten Style in WM_CREATE einfach wieder weg...das Problem ist jetzt, dass die Titelleiste trotzdem einmal gemalt wird und erst nach dem nächsten MoveWindow (was nicht der alten Fenstergröße entsprechen darf!!) weg ist...InvalidateRect reicht leider nicht...jemand ne Ahnung wieso?
-
Vielleicht hilft das:
Specifically, if you change any of the frame styles, you must call SetWindowPos with the SWP_FRAMECHANGED flag for the cache to be updated properly.
-
sag mal wie findest du in der MSDN immer genau das Richtige? Schlimm........

-
Naja, du musst einfach nur die Remarks zu den verwendeten Funktionen lesen

-
das schlimme ist, dass ich das getan habe

-
vielleicht hilft auch das flag MDIS_ALLCHILDSTYLES
The last member of the MDICREATESTRUCT structure is the style member, which may contain style bits for the window. To create an MDI child window that can have any combination of window styles, specify the MDIS_ALLCHILDSTYLES window style. When this style is not specified, an MDI child window has the WS_MINIMIZE, WS_MAXIMIZE, WS_HSCROLL, and WS_VSCROLL styles as default settings.
-
nene, das hab ich gelesen und ausprobiert, danke trotzdem!