Если вы посмотрите на окна браузеров Firefox, Chrome или Opera, вы заметите, что их окна
Меня интересует: как я могу создать такое окно?
Что я уже пробовал:
Я поискал на StackOverflow (и погуглил тоже) и нашел вот это: открытие окна без строки заголовка в win32
К сожалению, это не помогло полностью:
Первым шагом было расширение решения, предложенного на открытие окна без строки заголовка в win32
hWnd = CreateWindow(szWindowClass, szTitle, WS_BORDER,
CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
NULL, NULL, hInstance, NULL);
SetWindowLong(hWnd, GWL_STYLE, WS_SIZEBOX);
// See remarks on http://msdn.microsoft.com/en-us/library/windows/desktop/ms633545.aspx
SetWindowPos(hWnd, 0,
0, 0, 0, 0, // Position + Size
SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_FRAMECHANGED);
Конечно, это не дает кнопок минимизации/максимизации, но с другой стороны, если я хочу кнопки минимизации/максимизации, я должен сделать:
SetWindowLong(hWnd, GWL_STYLE, WS_SIZEBOX | WS_MAXIMIZEBOX |
WS_MINIMIZEBOX | WS_SYSMENU | WS_CAPTION);
Почему эта комбинация кажется необходимой? Сначала я, вероятно, хочу WS_MAXIMIZEBOX | WS_MINIMIZEBOX
, поскольку мне нужны эти кнопки.
Но http://msdn.microsoft.com/en-us/library/ms632600.aspx говорит, что если я устанавливаю один из WS_MAXIMIZEBOX
и WS_MINIMIZEBOX
, я также должен установить WS_SYSMENU
. И когда я устанавливаю WS_SYSMENU
, я также должен установить WS_CAPTION
, но это не то, что я хочу, потому что я хотел избежать строки заголовка (действительно: если WS_CAPTION
не установлен, кнопки минимизации/максимизации не отображаются).
Так что же делать?