Список стилей окна
Приведем полный список возможных стилей окна, определенных в виде символических констант в файле windows.h. Некоторые из приведенных здесь стилей будут подробно рассмотрены в соответствующих главах этого тома или в следующих томах "Библиотеки системного программиста".
| Имя константы | Описание стиля |
| WS_BORDER | Окно с рамкой |
| WS_CAPTION | Окно с заголовком. Этот стиль несовместим со стилем WS_DLGFRAME. При использовании стиля WS_CAPTION подразумевается использование стиля WS_BORDER |
| WS_CHILD | Дочернее окно. Несовместим со стилем WS_POPUP |
| WS_CHILDWINDOW | То же самое, что и WS_CHILD |
| WS_CLIPCHILDREN | Этот стиль используется при создании родительского окна. При его использовании родительское окно не перерисовывает свои внутренние области, занятые дочерними окнами |
| WS_CLIPSIBLINGS | При указании этого стиля дочерние окна не перерисовывают свои области, перекрытые "братьями", то есть другими дочерними окнами, имеющими тех же родителей |
| WS_DISABLED | Вновь созданное окно сразу становится заблокированным (не получает сообщения от мыши и клавиатуры) |
| WS_DLGFRAME | Окно с двойной рамкой без заголовка. Несовместим со стилем WS_CAPTION |
| WS_GROUP | Определяет первый орган управления в группе органов управления. Используется только в диалоговых панелях |
| WS_HSCROLL | В окне создается горизонтальная полоса просмотра |
| WS_ICONIC | То же самое, что и WS_MINIMIZE |
| WS_MAXIMIZE | Создается окно максимально возможного размера |
| WS_MAXIMIZEBOX | Окно содержит кнопку для увеличения его размера до максимально возможного. Этот стиль необходимо использовать вместе со стилями WS_OVERLAPPED или WS_CAPTION, в противном случае указанная кнопка не появится |
| WS_MINIMIZE | Создается окно, уменьшенное до предела (свернутое в пиктограмму). Этот стиль необходимо использовать вместе со стилем WS_OVERLAPPED |
| WS_MINIMIZEBOX | Окно содержит кнопку для сворачивания окна в пиктограмму (минимизации размеров окна). Этот стиль необходимо использовать вместе со стилем WS_OVERLAPPED или WS_CAPTION, в противном случае указанная кнопка не появится |
| WS_OVERLAPPED | Создается перекрывающееся окно, имеющее заголовок и рамку |
| WS_OVERLAPPEDWINDOW | Создается перекрывающееся окно, имеющее заголовок, рамку для изменения размера окна, системное меню, кнопки для изменения размеров окна. Этот стиль является комбинацией стилей WS_OVERLAPPED, WS_CAPTION, WS_SYSMENU, WS_THICKFRAME, WS_MINIMIZEBOX и WS_MAXIMIZEBOX |
| WS_POPUP | Создается временное (pop-up) окно |
| WS_POPUPWINDOW | Комбинация стилей WS_POPUP, WS_BORDER и WS_SYSMENU. Для того чтобы сделать системное меню доступным, необходимо дополнительно использовать стиль WS_CAPTION |
| WS_SYSMENU | Окно должно иметь системное меню |
| WS_TABSTOP | Этот стиль указывает орган управления, на который можно переключиться при помощи клавиши <Tab>. Данный стиль может быть использован только дочерними окнами в диалоговых панелях |
| WS_THICKFRAME | Окно должно иметь толстую рамку для изменения размера окна |
| WS_VISIBLE | Создается окно, которое сразу становится видимым. По умолчанию окна создаются невидимыми, и для их отображения требуется вызывать функцию ShowWindow |
| WS_VSCROLL | В окне создается вертикальная полоса просмотра |
| WS_TILED | Устаревший стиль, аналогичен WS_OVERLAPPED |
| WS_SIZEBOX | Устаревший стиль, аналогичен WS_THICKFRAME |
| WS_TILEDWINDOW | Устаревший стиль, аналогичен WS_OVERLAPPEDWINDOW |
| MDIS_ALLCHILDSTYLES | Этот стиль используется при создании дочерних MDI-окон и определяет окна, которые могут иметь любые комбинации стилей. По умолчанию дочерние MDI-окна имеют стили WS_MINIMIZE, WS_MAXIMIZE, WS_VSCROLL, WS_HSCROLL |
Приведенные выше стили не всегда совместимы друг с другом. Например, перекрывающееся окно не может быть одновременно еще и временным. Пользуясь приведенной ниже таблицей, вы сможете определить совместимость стилей. В этой таблице символом "+" отмечены стили, которые можно использовать для создания перекрывающихся, временных и дочерних окон.
| Имя константы | Перекрывающееся окно | Временное окно | Дочернее окно |
| WS_BORDER | + | + | + |
| WS_CAPTION | + | + | + |
| WS_CHILD | + | ||
| WS_CHILDWINDOW | + | ||
| WS_CLIPCHILDREN | + | + | + |
| WS_CLIPSIBLINGS | + | ||
| WS_DISABLED | + | + | + |
| WS_DLGFRAME | + | + | + |
| WS_GROUP | + | ||
| WS_HSCROLL | + | + | + |
| WS_ICONIC | + | ||
| WS_MAXIMIZE | + | ||
| WS_MAXIMIZEBOX | + | + | + |
| WS_MINIMIZE | + | ||
| WS_MINIMIZEBOX | + | + | + |
| WS_OVERLAPPED | + | ||
| WS_OVERLAPPEDWINDOW | + | ||
| WS_POPUP | + | ||
| WS_POPUPWINDOW | + | ||
| WS_SYSMENU | + | + | + |
| WS_TABSTOP | + | ||
| WS_THICKFRAME | + | + | + |
| WS_VISIBLE | + | + | |
| WS_VSCROLL | + | + | + |
| WS_TILED | + | ||
| WS_SIZEBOX | + | + | + |
| WS_TILEDWINDOW | + | ||
| MDIS_ALLCHILDSTYLES |
HWND CreateWindowEx(DWORD dwExStyle, LPCSTR lpszClassName, LPCSTR lpszWindowName, DWORD dwStyle, int x, int y, int nWidth, int nHeight, HWND hwndParent, HMENU hmenu, HINSTANCE hinst, void FAR* lpvCreateParams);
Функции CreateWindowEx в качестве первого параметра (dwExStyle) необходимо указать расширенный стиль окна. Остальные параметры в точности соответствуют параметрам функции CreateWindow.
Приведем список расширенных стилей окна.
| Имя константы | Описание стиля |
| WS_EX_ACCEPTFILES | Окно способно принимать файлы, перенесенные с использованием технологии drag-drop |
| WS_EX_DLGMODALFRAME | Окно имеет двойную рамку и дополнительно может иметь стиль WS_CAPTION |
| WS_EX_NOPARENTNOTIFY | Дочернее окно с этим стилем не будет посылать родительскому окну сообщение WM_PARENTNOTIFY. Обычно, когда дочернее окно создается или уничтожается или когда вы щелкаете мышью над дочерним окном, это сообщение посылается родительскому окну |
| WS_EX_TOPMOST | Окно будет видно всегда, даже когда оно заблокировано |
| WS_EX_TRANSPARENT | Этот стиль позволяет создать прозрачное окно. Оно получает сообщение WM_PAINT только после того, как все окна-братья получили сообщение WM_PAINT и обновили свои окна |
Приведем таблицу совместимости расширенных стилей с перекрывающимися, временными и дочерними окнами.
| Имя константы | Перекрывающееся окно | Временное окно | Дочернее окно |
| WS_EX_ACCEPTFILES | + | + | + |
| WS_EX_DLGMODALFRAME | + | + | + |
| WS_EX_NOPARENTNOTIFY | + | ||
| WS_EX_TOPMOST | + | + | |
| WS_EX_TRANSPARENT | + | + | + |