Fenstergröße ändern
-
Hallo!
Wie kann man mit der Win32-API die Position und Größe eines Fenster nachträglich (also nach dem Erstellen) ändern?
Wenn möglich würde ich auch gerne nachträglich die Titelleiste entfernen.
Danke!
mfg
-
zum Verschieben/Größe ändern -> MoveWindow
-
-
Chris R. schrieb:
Wenn möglich würde ich auch gerne nachträglich die Titelleiste entfernen.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/windowclasses/windowclassreference/windowclassfunctions/setwindowlongptr.asp
alle styles lassen sich aber afaik nicht ändern
-
Also ich habe jetzt folgendes probiert:
SetWindowLong(hWnd, GWL_STYLE, WS_CAPTION | WS_SYSMENU);
Es funktioniert aber nicht. Das Fenster sieht danach genauso aus, aber das Programm bleibt hängen. Es muss aber irgendwie gehen, immerhin kann man das sogar von VB aus machen.
-
Du musst nach SetWindowLong bzw SetWindowLongPtr SetWindowPos aufrufen damit die Änderungen aktiv werden.
MSDN schrieb:
If you have changed certain window data using SetWindowLong, you must call SetWindowPos to have the changes take effect. Use the following combination for uFlags: SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_FRAMECHANGED.
-
Wenn du nachträglich einen Stil entfernen willst musst du das anders machen. Nämlich so:
SetWindowLong(hWnd, GWL_STYLE, GetWindowLong(hWnd, GWL_STYLE) & ~WS_CAPTION | WS_SYSMENU);