web-dev-qa-db-ja.com

タイトルバーのないウィンドウをwin32で開く

Windows用のC++アプリケーションを開発しています。 win32 APIを使用しています。非常に簡単な質問がありますが、答えが見つかりませんでした。タイトルバーなし(コントロール、アイコン、タイトルなし)でウィンドウのサイズを変更できないウィンドウを開くにはどうすればよいですか?.

アプリケーションがウィンドウを作成するために使用しているコードの一部:

      hWnd = CreateWindow(szWindowClass, 0, (WS_BORDER ),
             0, 0, WINDOW_WIDTH, WINDOW_HEIGHT, NULL, NULL, hInstance, NULL);

更新:

これをC#で行うには、次のコードを定義するだけです。

 FormBorderStyle = System.Windows.Forms.FormBorderStyle.SizableToolWindow;
 ControlBox = false;
20
blejzz
hWnd = CreateWindow(szWindowClass, 0, (WS_BORDER ), 0, 0, WINDOW_WIDTH, WINDOW_HEIGHT, NULL, NULL, hInstance, NULL); 

SetWindowLong(hWnd, GWL_STYLE, 0); //remove all window styles, check MSDN for details

ShowWindow(hWnd, SW_SHOW); //display window
19
Mike

WS_BORDER スタイル:

CreateWindow関数を参照してください: http://msdn.Microsoft.com/en-us/library/ms632679%28v=vs.85%29.aspx

ウィンドウスタイル: http://msdn.Microsoft.com/en-us/library/ms632600%28v=vs.85%29.aspx

2
RED SOFT ADAIR
HWND hWnd ;
hWnd = CreateWindow(szWindowClass, 0, (WS_BORDER ), 0, 0, 100, 100, NULL, NULL, Instance, NULL); 
SetWindowLong(hwnd, GWL_STYLE, WS_BORDER );  // With 1 point border
//OR
SetWindowLong(hwnd, GWL_STYLE, 0 );  // Without 1 point border = white rectangle 
SetWindowPos(hwnd, 0, 150, 100, 250, 250, SWP_FRAMECHANGED); 

if (!hWnd)
 return FALSE ;
else
ShowWindow(hwnd, SW_SHOW);
CreateWindowEx(0, szWindowClass, 0, WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_POPUP, 0, 0, WINDOW_WIDTH, WINDOW_HEIGHT, NULL, NULL, hInstance, NULL);

SetWindowLongを使用すると、サイズが変更され、投稿されます。使用 - WS_POPUPスタイル

0
Dede Kusuma