Fenster zentrieren
-
Hallo,
wie muss ich die CMainFrame::PreCreateWindow(CREATESTRUCT& cs) verändern, damit mein Fenster bildschirmunabhängig zentriert wird? Lief früher problemlos, ich hab aber die Parameter cs.cx und cs.cy verändert, was dazu geführt hat, dass das Fenster nun nicht mehr zentriert ist.
-
es gibt doch eine Methode Center() ?
-
Hab in der MSDN dannach gesucht und nichts gefunden. Weiß noch jemand etwas?
-
in den einstellungen der fenster-resource die eigenschaft center auf true setzen, fertig!
-
Hi!
Du kannst die Rahemnfensterklasse mit SetWindowPlacement ziemlich gut plazieren. Einfach (Auflösung-Fensterbreite)/2mfg
-
mike schrieb:
Hi!
Du kannst die Rahemnfensterklasse mit SetWindowPlacement ziemlich gut plazieren. Einfach (Auflösung-Fensterbreite)/2jo... das ist die harte methode ;P
-
Danke für euere Antworten. @mike: Kannst du das bitte in C++ schreiben?

-
was er meint geht ungefähr so ...
RECT rect; GetWindowRect(&rect); rect.bottom -= rect.top; // Weil absolute Pixelwerte vom oberen Fensterrand aus gerechnet rect.right -= rect.left; // Weil absolute Pixelwerte vom linken Fensterrand aus gerechnet int nScreenCX = GetSytsemMetrics(SM_CXFULLSCREEN); int nScreenCY = GetSytsemMetrics(SM_CYFULLSCREEN); // BOOL SetWindowPos(const CWnd* pWndInsertAfter, int x, int y, int cx, int cy, UINT nFlags); SetWindowPos(&wndTop, (nScreenCX/2)-(rect.right/2), (nScreenCY/2)-(rect.bottom/2), rect.right, rect.bottom, SWP_SHOWWINDOW);das is aber ne beschissene methode um das fenster zentriert zu halten. wenn du das machen willst fang lieber die wm_move messages (oder wie die auch immer heissen) des fensters ab, schalte das bewegen des fensters in den optionen aus oder sowas in der art... sonst springt das fenster im in der gegend rum...
soll das fenster nur am anfang 1x in der mitte positioniert werden, ist die methode mit dem einstellen der center-eigenschaft des fensters im resourcen-editor besser.
gruß