открытие окна без заголовка с win32 - PullRequest
19 голосов
/ 16 сентября 2011

Я занимаюсь разработкой приложения на c ++ для Windows.Я использую 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;

Ответы [ 5 ]

19 голосов
/ 16 сентября 2011
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
2 голосов
/ 16 сентября 2011

Опустить стиль 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

1 голос
/ 09 ноября 2014
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);
0 голосов
/ 26 ноября 2018
CreateWindowEx(0, szWindowClass, 0, WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_POPUP, 0, 0, WINDOW_WIDTH, WINDOW_HEIGHT, NULL, NULL, hInstance, NULL);

с помощью SetWindowLong изменит размер и сообщение.используйте стиль WS_POPUP

0 голосов
/ 16 сентября 2015
SetWindowLong(hWnd, GWL_EXSTYLE, WS_EX_TOOLWINDOW);
...