Client Rect
-
Irgendwie.. funktioniert die Funktion nicht. Wenn ich danach GetClientRect frage wie groß das Fenster ist, ist es zu klein. AdjustWindowRect verändert die Werte auch gar nicht..
Was mache ich falsch?HWND MyCreateWindow(int width, int height, wchar_t *className, wchar_t *title) { RECT wndRect = {0, 0, width, height}; if (!::AdjustWindowRect(&wndRect, WS_SYSMENU | WS_MINIMIZEBOX, 0)) FatalError(L"AdjustWindowRect"); HWND hwnd = ::CreateWindow(className, title, WS_SYSMENU | WS_MINIMIZEBOX, CW_USEDEFAULT, CW_USEDEFAULT, wndRect.right, wndRect.bottom, 0, 0, GetModuleHandle(0), 0); if (!hwnd) sys::FatalError(L"CreateWindow"); ::ShowWindow(hwnd, SW_SHOW); ::UpdateWindow(hwnd); return hwnd; }
-
Dieser Thread wurde von Moderator/in rapso aus dem Forum Spiele-/Grafikprogrammierung in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Niemand eine Idee? Nervig ist das schon irgendwie..
-
Mir ging AdjustWindowRect() auch immer auf den Senkel

Ich erzeuge einfach das Fenster mit irgendeiner Größe, bilde die Differenz zur Wunschgröße und rufe dann rufe dann MoveWindow() mit der passenden Größe auf
-
cooky451 schrieb:
Niemand eine Idee? Nervig ist das schon irgendwie..
MSDN sagt:
WS_SYSMENUThe window has a window menu on its title bar. The WS_CAPTION style must also be specified.
-
Belli schrieb:
The WS_CAPTION style must also be specified.
Hm.. ok, aber geholfen hats nicht

geeky schrieb:
Mir ging AdjustWindowRect() auch immer auf den Senkel

Ich erzeuge einfach das Fenster mit irgendeiner Größe, bilde die Differenz zur Wunschgröße und rufe dann rufe dann MoveWindow() mit der passenden Größe auf
Werde ich dann wohl auch so machen müssen; schon komisch..
-
Also wenn ich beim Aufruf von AdjustWindowRect den WS_CAPTION - Style hinzunehme, dann bekomme ich von der Funktion ein verändertes Rechteck zurück, es verändern sich allerdings auch top und left, so daß beim CreateWindow nicht einfach CW_USEDEFAULT iVm rect.right / rect.bottom benutzt werden kann.
-
Belli schrieb:
Also wenn ich beim Aufruf von AdjustWindowRect den WS_CAPTION - Style hinzunehme, dann bekomme ich von der Funktion ein verändertes Rechteck zurück, es verändern sich allerdings auch top und left, so daß beim CreateWindow nicht einfach CW_USEDEFAULT iVm rect.right / rect.bottom benutzt werden kann.
oO stimmt! Gar nicht drauf geachtet, mist. Ok, aber dann kann ich ja einfach die "echte" Breite/Höhe ausrechnen und trotzdem CW_USEDEFAULT nutzen, sollte klappen.
-
Klar, Du musst es halt irgendwie berücksichtigen ...
-
Jaja schon gut, es klappt jetzt. Besten Dank
