hallo, ich hab eine normale mdi anwendung und man kann ja schon vonhause aus "fenster -> nebeneinander" die geöffneten fenster nebeneinander anordnen. im menu selber wird "ID_WINDOW_TILE_HORZ" losgeschickt. Meine fragen ist jetzt, wie und wo rufe ich diese funktion an einer stelle meines programmes selber auf, ohne das man im menu etwas anklicken muss?
Hi! Das ChildFrame bietet sich dazu an. Die Funktion, welche die Fenster anordnet muss nur 2 Eigenschaften haben: 1. Funktion muss bei jedem Erstellen aufgerufen werden 2. GetSafeHwnd muss einen gültigen Wert liefern - d.h. das Fenster muss zu dieser Zeit existieren (WM_CREATE zb). Wenn du das Fenster einfach nur Minimieren/Maximieren willst, dann erfolgt dies in deiner App Klasse (InitInstance). Dort wird es per Flag angehängt.
Was soll denn die funktion ausführen die bei jedem erstellen ausgeführt wird? und was meinst du mit "per flag anhängen" ? ich möchte die mdi fenster nebeneinander anordnen.
Hi! Mit Flag meinte ich DWORD dwFlags |= IRGENDWAS. Das ist für dich aber uninteressant, da dies nur den Effekt hätte, dass beim Erstellen eines Windows dieses Maximiert wird. Mit folgenden Schritten müsste es funtzen: 1. ActivateFrame(int nCmdShow) in die Frame Klasse einfügen 2. Anzahl der Fenster berechnen (siehe CWnd Funktionen oder Callback EnumWindows) 3. verfügbare Fläche ermitteln GetWindowRect 4. mit SetWindowPlacement Größe anpassen