Основные сведения о характеристиках окна
Классы признаков окна предоставляют простой метод стандартизации стилей, используемых для создания объекта окна ATL. Признаки окна принимаются в качестве параметров шаблона cWindowImpl и других классов окон ATL в качестве способа предоставления стилей окон по умолчанию на уровне класса.
Если создатель экземпляра окна явно не предоставляет стили в вызове create, можно использовать класс признаков, чтобы убедиться, что окно по-прежнему создается с правильными стилями. Вы даже можете убедиться, что для всех экземпляров этого класса окон заданы определенные стили, разрешая устанавливать другие стили на основе каждого экземпляра.
Шаблоны признаков окна ATL
ATL предоставляет два шаблона признаков окна, которые позволяют задавать стили по умолчанию во время компиляции с помощью параметров шаблона.
Класс | Description |
---|---|
CWinTraits | Используйте этот шаблон, если вы хотите предоставить стили окон по умолчанию, которые будут использоваться только в том случае, если другие стили не указаны в вызове Create . Стили, предоставляемые во время выполнения, имеют приоритет над набором стилей во время компиляции. |
CWinTraitsOR | Используйте этот класс, если требуется указать стили, которые всегда должны быть заданы для класса окна. Стили, предоставляемые во время выполнения, объединяются с набором стилей во время компиляции с помощью побитового оператора OR. |
Помимо этих шаблонов ATL предоставляет ряд предопределенных специализаций CWinTraits
шаблона для часто используемых сочетаний стилей окон. Полные сведения см. в справочной документации по CWinTraits .
Настраиваемые признаки окна
В маловероятной ситуации, когда специализированный один из шаблонов, предоставляемых ATL, недостаточно, и вам нужно создать собственный класс признаков, вам просто нужно создать класс, реализующий две статические функции: иGetWndStyleEx
: GetWndStyle
static DWORD GetWndStyle(DWORD dwStyle);
static DWORD GetWndExStyle(DWORD dwExStyle);
Каждое из этих функций будет передано некоторое значение стиля во время выполнения, которое может использоваться для создания нового значения стиля. Если класс признаков окна используется в качестве аргумента шаблона для класса окна ATL, значения стилей, передаваемые этим статическим функциям, будут все, что было передано в качестве аргументов стиля для create.