Если вы посмотрите на окна браузеров 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
не задано, кнопки с минимальным/максимальным образом не отображаются).
Итак, что делать?