Поделиться через


Расширенные стили окна

Ниже приведены расширенные стили окна.

Пример


virtual    BOOL    Create(HWND hWndParent, WCHAR* pwszClassName,
                            WCHAR* pwszWindowName, UINT uID, HICON hIcon,
                            DWORD dwStyle = WS_OVERLAPPEDWINDOW,
                            DWORD dwExStyle = WS_EX_APPWINDOW,
                            int x = CW_USEDEFAULT, int y = CW_USEDEFAULT,
                            int cx = CW_USEDEFAULT, int cy = CW_USEDEFAULT);

Этот код взят из примера в репозитории GitHub классических примеров Для Windows .

Констант/значение Описание
WS_EX_ACCEPTFILES
0x00000010L
Окно принимает файлы перетаскивания.
WS_EX_APPWINDOW
0x00040000L
Принудительное добавление окна верхнего уровня на панель задач, когда окно отображается.
WS_EX_CLIENTEDGE
0x00000200L
Окно имеет границу с впалой кромкой.
WS_EX_COMPOSITED
0x0200000L
Рисует все потомки окна в порядке рисования снизу вверх с помощью двойной буферизации. Порядок рисования снизу вверх позволяет окну-потомку иметь эффекты прозрачности (альфа) и прозрачности (цветовая клавиша), но только в том случае, если в окне-потомке также задан бит WS_EX_TRANSPARENT. Двойная буферизация позволяет закрашивать окно и его потомки без мерцания. Его нельзя использовать, если окно имеет стиль классаCS_OWNDC или CS_CLASSDC.
Windows 2000: Этот стиль не поддерживается.
WS_EX_CONTEXTHELP
0x00000400L
Строка заголовка окна содержит вопросительный знак. Когда пользователь щелкает вопросительный знак, курсор меняется на вопросительный знак с указателем. Если пользователь щелкает дочернее окно, ребенок получает WM_HELP сообщение. Дочернее окно должно передать сообщение в процедуру родительского окна, которая должна вызвать функцию WinHelp с помощью команды HELP_WM_HELP . В приложении "Справка" отображается всплывающее окно, которое обычно содержит справку по дочернему окну.
WS_EX_CONTEXTHELP нельзя использовать со стилями WS_MAXIMIZEBOX или WS_MINIMIZEBOX .
WS_EX_CONTROLPARENT
0x00010000L
Само окно содержит дочерние окна, которые должны участвовать в навигации по диалоговым окнам. Если указан этот стиль, диспетчер диалогов повторно переходит в дочерние элементы этого окна при выполнении таких операций навигации, как обработка клавиши TAB, клавиши со стрелкой или клавиатуры.
WS_EX_DLGMODALFRAME
0x00000001L
Окно имеет двойную границу; при необходимости можно создать окно с заголовком строки, указав стиль WS_CAPTION в параметре dwStyle .
WS_EX_LAYERED
0x00080000
Окно представляет собой многоуровневое окно. Этот стиль нельзя использовать, если окно имеет стиль классаCS_OWNDC или CS_CLASSDC.
Windows 8. Стиль WS_EX_LAYERED поддерживается для окон верхнего и дочерних окон. Предыдущие версии Windows поддерживали WS_EX_LAYERED только для окон верхнего уровня.
WS_EX_LAYOUTRTL
0x00400000L
Если языком оболочки является иврит, арабский или другой язык, поддерживающий выравнивание порядка чтения, горизонтальный источник окна находится на правом краю. Увеличение горизонтальных значений перемещает влево.
WS_EX_LEFT
0x00000000L
Окно имеет универсальные свойства, выровненные по левому краю. Это значение по умолчанию.
WS_EX_LEFTSCROLLBAR
0x00004000L
Если язык оболочки — иврит, арабский или другой язык, поддерживающий выравнивание порядка чтения, вертикальная полоса прокрутки (при наличии) находится слева от клиентской области. Для других языков стиль игнорируется.
WS_EX_LTRREADING
0x00000000L
Текст окна отображается с помощью свойств порядка чтения слева направо. Это значение по умолчанию.
WS_EX_MDICHILD
0x00000040L
Окно является дочерним окном MDI.
WS_EX_NOACTIVATE
0x08000000L
Окно верхнего уровня, созданное в этом стиле, не становится окном переднего плана, когда пользователь щелкает его. Система не выводит это окно на передний план, когда пользователь свернет или закрывает окно переднего плана.
Окно не должно быть активировано программным доступом или с помощью навигации с помощью клавиатуры с помощью специальных возможностей, таких как экранный диктор.
Чтобы активировать окно, используйте функцию SetActiveWindow или SetForegroundWindow .
По умолчанию окно не отображается на панели задач. Чтобы окно отображалось на панели задач, используйте стиль WS_EX_APPWINDOW .
WS_EX_NOINHERITLAYOUT
0x00100000L
Окно не передает макет окна дочерним окнам.
WS_EX_NOPARENTNOTIFY
0x00000004L
Дочернее окно, созданное в этом стиле, не отправляет сообщение WM_PARENTNOTIFY в родительское окно при его создании или уничтожении.
WS_EX_NOREDIRECTIONBITMAP
0x00200000L
Окно не отображается в области перенаправления. Это касается окон, которые не имеют видимого содержимого или используют механизмы, отличные от поверхностей, для предоставления визуального элемента.
WS_EX_OVERLAPPEDWINDOW
(WS_EX_WINDOWEDGE | WS_EX_CLIENTEDGE)
Окно перекрывается.
WS_EX_PALETTEWINDOW
(WS_EX_WINDOWEDGE | WS_EX_TOOLWINDOW | WS_EX_TOPMOST)
Окно является окном палитры, которое представляет собой немодное диалоговое окно с массивом команд.
WS_EX_RIGHT
0x00001000L
Окно имеет универсальные свойства , выровненные по правому краю. Это зависит от класса window. Этот стиль действует только в том случае, если в оболочке используется иврит, арабский или другой язык, поддерживающий выравнивание порядка чтения; В противном случае стиль игнорируется.
Использование стиля WS_EX_RIGHT для статических элементов управления или элементов управления редактированием имеет тот же эффект, что и при использовании стиля SS_RIGHT или ES_RIGHT соответственно. Использование этого стиля с элементами управления кнопками имеет тот же эффект, что и использование стилей BS_RIGHT и BS_RIGHTBUTTON .
WS_EX_RIGHTSCROLLBAR
0x00000000L
Вертикальная полоса прокрутки (если она есть) находится справа от клиентской области. Это значение по умолчанию.
WS_EX_RTLREADING
0x00002000L
Если в оболочке используется иврит, арабский или другой язык, поддерживающий выравнивание порядка чтения, текст окна отображается с помощью свойств порядка чтения справа налево. Для других языков стиль игнорируется.
WS_EX_STATICEDGE
0x00020000L
Окно имеет трехмерный стиль границы, предназначенный для элементов, которые не принимают введенные пользователем данные.
WS_EX_TOOLWINDOW
0x00000080L
Окно предназначено для использования в качестве плавающей панели инструментов. Окно инструментов имеет строку заголовка, которая короче обычной, а заголовок окна рисуется с помощью шрифта меньшего размера. Окно инструментов не отображается на панели задач или в диалоговом окне, которое появляется при нажатии клавиш ALT+TAB. Если в окне инструментов есть системное меню, его значок не отображается в заголовке окна. Однако системное меню можно отобразить, щелкнув правой кнопкой мыши или введя клавиши ALT+ПРОБЕЛ.
WS_EX_TOPMOST
0x00000008L
Окно должно располагаться над всеми не самыми верхними окнами и оставаться над ними, даже если окно деактивировано. Чтобы добавить или удалить этот стиль, используйте функцию SetWindowPos .
WS_EX_TRANSPARENT
0x00000020L
Окно не должно быть окрашено до тех пор, пока под окном (созданные тем же потоком) не будут покрашены. Окно отображается прозрачным, так как биты базовых одноуровневых окон уже окрашены.
Чтобы обеспечить прозрачность без этих ограничений, используйте функцию SetWindowRgn .
WS_EX_WINDOWEDGE
0x00000100L
Окно имеет границу с поднятым краем.

Требования

Требование Значение
Минимальная версия клиента
Windows 2000 Professional [только классические приложения]
Минимальная версия сервера
Windows 2000 Server [только классические приложения]
Заголовок
Winuser.h (включая Windows.h)