Fenster ohne Rahmen...aber wie?
-
Hallo, habe ein Fenster mit CreateDialog auf Resourcen erstellt. Wie schaffe ich es jetzt den Rahmen zur Laufzeit zu entfernen? Ich habe zwar gelesen, dass SetWindowLong und WS_POPUP reichen soll, jedoch bleibt der Rahmen erhalten. Kann mir jemand von euch helfen? Danke.
-
nach SetWindowLong brauch man meistens SetWindowPos
-
MSDN-Library zu SetWindowLong schrieb:
Certain window data is cached, so changes you make using SetWindowLong will not take effect until you call the SetWindowPos function. Specifically, if you change any of the frame styles, you must call SetWindowPos with the SWP_FRAMECHANGED flag for the cache to be updated properly.
-
Danke, bin damita schon etwas weiter gekommen. Ds Fenster hat jetzt zwar keine Titelleiste mehr, jedoch immer noch einen "3D"-Rahmen.
... hWnd = CreateDialog( hInstance, MAKEINTRESOURCE( IDD_SAMPLE ), NULL, DlgProc ); if ( hWnd ) { LONG lLong = WS_POPUP; SetWindowLong( hWnd, GWL_STYLE, lLong ); SetWindowPos( hWnd, 0, 50, 50, 320, 240, SWP_FRAMECHANGED ); ShowWindow( hWnd, SW_SHOW ); }; ...
-
Du solltest erst mit GetWindowLong die bestehenden Flags auslesen, dann entsprechend abändern und dann wieder zurücksetzen.
-
liegt bestimmt an WS_EX_DLGMODALFRAME.
-
@poss, an die GWL_EXSTYLE Eigenschaften habe ich gar nicht gedacht. Funktioniert wunderbar. Danke.
-
warum stellst du den dialog nicht sofort im resourceneditor richtig ein?