exakte Größe meines Fensters
-
Hallo.
Ich habe mittels MFC eine SDI-Anwendung erstellt, und möchte darin ein BMP-Bild (768*1024) laden.
Wenn ich allerdings die Fenstergröße wie folgt festlege:
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) { cs.cx = 1024; cs.cy = 768; cs.style = WS_OVERLAPPED | WS_SYSMENU | WS_BORDER; cs.dwExStyle = WS_EX_RIGHTSCROLLBAR; if( !CFrameWnd::PreCreateWindow(cs) ) return FALSE; // TODO: Modify the Window class or styles here by modifying // the CREATESTRUCT cs return TRUE; }dann ist nicht genug Platz für das Bild, da es ja auch noch Menüleiste und Toolbar gibt, die von cs.cx und cs.cy abgezogen werden.
Wie bekomme ich nun heraus, wie 'groß' ich die beiden Parameter cs.cx und cs.cy wählen muss, damit das gesamte Bild zu sehen ist?
DANKE.
H.W.
-
CRect r; SystemParametersInfo(SPI_GETWORKAREA, 0, &r, 0);
-
Martin Richter schrieb:
CRect r; SystemParametersInfo(SPI_GETWORKAREA, 0, &r, 0);DANKE für die antwort, aber das scheint ja nur die parameter für meinen bildschirm wiederzugeben? Ich brauche doch aber die Parameter nur für das Mainwindow der SDI-Anwendung.
DANKE.
H.W.
-
Schau dir mal GetSystemMetrics an.

-
[quote="Hans WurstDANKE für die antwort, aber das scheint ja nur die parameter für meinen bildschirm wiederzugeben? Ich brauche doch aber die Parameter nur für das Mainwindow der SDI-Anwendung.[/quote]
Eben verstehe ich es:
Schau Dir mal AdjustWindowRectEx an. Dort übergibst Du die Größe der Cleint-Area in einem CRect und den Fensterstil und ein Flag ob ein Menu vorhanden ist und bekommst dann die benötigte Größe.Intern wurde CalcWindowRect für die MFC eingebaut. Die kannst Du direkt verwenden wenn das Fenster schon existiert!