Innere Fenstergröße ändern?
-
Hallo,
wie kann ich in C++ die innere größe meines Fensters ändern? Bei Google find ich dazu nichts.
So ändere ich die äußere Größe:
SetWindowPos(hWnd, NULL, CW_USEDEFAULT, CW_USEDEFAULT, adaptermode.Width, adaptermode.Height, SWP_NOMOVE | SWP_NOZORDER);
mfg.
markus111
-
Was meinst Du denn mit "innerer" Fenstergröße?
Du kannst natürlich die Rahmenbreite ändern (über die Style-Variable in der WndclassEx-Sturktur) oder mit SetWindowRgn()eine Zeichnungsregion innerhalb des Client-Bereiches festlegen.
-
Er meint sicherlich die "Client Area".
Das geht glaube ich nur mit ein bisschen Rechnen, also GetSystemMetrics() für die Rahmen/Captionbreite...
-
Siehe AdjustWindowRect(Ex)
http://msdn.microsoft.com/en-us/library/ms632667(VS.71).aspx
-
alright schrieb:
Er meint sicherlich die "Client Area".
Das geht glaube ich nur mit ein bisschen Rechnen, also GetSystemMetrics() für die Rahmen/Captionbreite...Danke, hat sehr geholfen:
int y = GetSystemMetrics(SM_CYCAPTION) + adaptermode.Height + GetSystemMetrics(SM_CYFRAME) * 2; int x = GetSystemMetrics(SM_CXFRAME) * 2 + adaptermode.Width; SetWindowPos(hWnd, NULL, CW_USEDEFAULT, CW_USEDEFAULT, x, y, SWP_NOMOVE | SWP_NOZORDER);
mfg.
markus111
-
Oh, AdjustWindowRect ist wohl noch einfacher.
-
alright schrieb:
Oh, AdjustWindowRect ist wohl noch einfacher.
Vor allem berücksichtigt es alle internen Stile und was Themes in Zukunft noch bringen mögen.