SDI-FensterGröße
-
Hallo zusammen,
könnte mir jemnad sagen wie ich die Größe eines Fenster in einer SDI-
Anwendung ändern kann??Gruß
-
Bei SDI kannst Du doch nur das Main-Fenster ändern, oder? SetWindowPos?
-
Der SDI-Fall
In einer SDI-Anwendung (Single Document Interface) stellt der Standard-Fensterstil in dem Gerüst eine Kombination der Stile WS_OVERLAPPEDWINDOW und FWS_ADDTOTITLE dar. FWS_ADDTOTITLE ist ein MFC-spezifischer Stil, der das Gerüst anweist, den Dokumenttitel zum Titel des Fensters hinzuzufügen. Zum Ändern der Fensterattribute in einer SDI-Anwendung setzen Sie die Funktion PreCreateWindow in Ihrer aus CFrameWnd abgeleiteten Klasse außer Kraft (die der Anwendungs-Assistent mit CMainFrame bezeichnet). Beispiel:BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) { // Erstellen eines Fensters ohne min-/max-Schaltflächen oder größenveränderbaren Rahmen cs.style = WS_OVERLAPPED | WS_SYSMENU | WS_BORDER; // Verändern der Fenstergröße auf 1/3 der Bildschirmgröße und anschließendes Zentrieren cs.cy = ::GetSystemMetrics(SM_CYSCREEN) / 3; cs.cx = ::GetSystemMetrics(SM_CXSCREEN) / 3; cs.y = ((cs.cy * 3) - cs.cy) / 2; cs.x = ((cs.cx * 3) - cs.cx) / 2; // Aufruf der Basisklassenversion return CFrameWnd::PreCreateWindow(cs); }
Im CMainFrame unter PreCreateWindow:
cs.cx und cs.cy geben deine Fenstergrösse an.
cs.x und cs.y die Position ab oberer linker EckeEdit estartu: Code-Tags nachgetragen