Anwendungsfenster maximieren mittels Get- und SetWindowPlacement()
-
Ausgangspunkt ist eine normale, nackte SDI-Applikation, in der ich das Maximieren des Anwendungsfensters manuell programmieren wollte.
Die Frage: Warum funktioniert es nicht, wenn ich folgenden Code, in der vom AppWizard generierten CMainFrame::OnCreate() Methode, einfüge, um das Applikationsfenster zu maximieren. Meines Wissens nach wird die OnCreate() Methode genau einmal beim Erzeugen des Fensters ausgeführt.
WINDOWPLACEMENT wplace; memset(&wplace, 0, sizeof(wplace)); if(!GetWindowPlacement(&wplace)) { TRACE0("Fensterplatzierung konnte nicht ermittelt werden\n"); return -1; // Fehler } wplace.showCmd |= SW_SHOWMINIMIZED; if(!SetWindowPlacement(&wplace)) { TRACE0("Fensterplatzierung konnte nicht neu zugewiesen werden.\n"); return -1; // Fehler }Der Effekt ist jedenfalls, dass das Fenster oben links in der Ecke des Bildschirms so ca. 300x300 Pixel vereinnahmt und nicht mehr "größer gezogen" werden kann. Wenn dann das Fenster minimiert, danach in der Taskleiste angeklickt wird, dann wird das Fenster maximiert dargestellt...
Habe mittlerweile herausgefunden, dass der AppWzd einfach ShowWindow(SW_MAXIMIZED) aufruft, um das Fenster zu maximieren, was dann auch funktioniert. Warum aber funktioniert mein Code nicht?
Wäre für Informationen dankbar!
Gruß
Prog