Макросы класса окна
Эти макросы определяют служебные программы класса окон.
Имя | Описание |
---|---|
DECLARE_WND_CLASS | Позволяет указать имя нового класса окна. |
DECLARE_WND_CLASS2 | (Visual Studio 2017) Позволяет указать имя нового класса окна и вложенный класс, процедура которого будет использоваться новым классом. |
DECLARE_WND_SUPERCLASS | Позволяет указать имя существующего класса окна, на котором будет основан новый класс окна. |
DECLARE_WND_CLASS_EX | Позволяет указать параметры класса. |
Требования
Заголовок: atlwin.h
DECLARE_WND_CLASS
Позволяет указать имя нового класса окна. Поместите этот макрос в класс элемента управления ActiveX ATL.
DECLARE_WND_CLASS( WndClassName )
Параметры
WndClassName
[in] Имя нового класса окна. Если значение NULL, ATL создаст имя класса окна.
Замечания
Если вы используете параметр компилятора /permissive- компилятор, DECLARE_WND_CLASS приведет к ошибке компилятора; вместо этого используйте DECLARE_WND_CLASS2.
DECLARE_WND_CLASS позволяет указать имя нового класса окна, сведения которого будут управляться CWndClassInfo. DECLARE_WND_CLASS определяет новый класс окна, реализуя следующую статическую функцию:
static CWndClassInfo& GetWndClassInfo();
DECLARE_WND_CLASS задает следующие стили для нового окна:
CS_HREDRAW
CS_VREDRAW
CS_DBLCLKS
DECLARE_WND_CLASS также указывает цвет фона окна по умолчанию. Используйте макрос DECLARE_WND_CLASS_EX для предоставления собственных стилей и цвета фона.
CWindowImpl использует макрос DECLARE_WND_CLASS для создания окна на основе нового класса окна. Чтобы переопределить это поведение, используйте макрос DECLARE_WND_SUPERCLASS или предоставьте собственную реализацию функции GetWndClassInfo .
Дополнительные сведения об использовании окон в ATL см. в статье "Классы окон ATL".
DECLARE_WND_CLASS2
(Visual Studio 2017) Аналогично DECLARE_WND_CLASS, но с дополнительным параметром, который избегает ошибки зависимого имени при компиляции с параметром /permissive-.
DECLARE_WND_CLASS2( WndClassName, EnclosingClass )
Параметры
WndClassName
[in] Имя нового класса окна. Если значение NULL, ATL создаст имя класса окна.
Заключив класс
[in] Имя класса окна, включающего новый класс окна. Не может быть NULL.
Замечания
Если вы используете параметр /permissive-, DECLARE_WND_CLASS приведет к ошибке компиляции, так как она содержит зависимое имя. DECLARE_WND_CLASS2 требует явного имени класса, в который используется этот макрос, и не вызывает ошибку в флаге /permissive-. В противном случае этот макрос идентичен DECLARE_WND_CLASS.
DECLARE_WND_SUPERCLASS
Позволяет указать параметры класса. Поместите этот макрос в класс элемента управления ActiveX ATL.
DECLARE_WND_SUPERCLASS( WndClassName, OrigWndClassName )
Параметры
WndClassName
[in] Имя класса окна, который будет суперклассом OrigWndClassName. Если значение NULL, ATL создаст имя класса окна.
OrigWndClassName
[in] Имя существующего класса окна.
Замечания
Этот макрос позволяет указать имя класса окна, который будет суперклассом существующего класса окна. CWndClassInfo управляет информацией суперкласса.
DECLARE_WND_SUPERCLASS реализует следующую статическую функцию:
static CWndClassInfo& GetWndClassInfo();
По умолчанию CWindowImpl использует макрос DECLARE_WND_CLASS для создания окна на основе нового класса окна. Указав макрос DECLARE_WND_SUPERCLASS в CWindowImpl
производном классе, класс окна будет основан на существующем классе, но будет использовать процедуру окна. Этот метод называется суперклассированием.
Помимо использования макросов DECLARE_WND_CLASS и DECLARE_WND_SUPERCLASS, можно переопределить функцию GetWndClassInfo с собственной реализацией.
Дополнительные сведения об использовании окон в ATL см. в статье "Классы окон ATL".
DECLARE_WND_CLASS_EX
Позволяет указать имя существующего класса окна, на котором будет основан новый класс окна. Поместите этот макрос в класс элемента управления ActiveX ATL.
DECLARE_WND_CLASS_EX( WndClassName, style, bkgnd )
Параметры
WndClassName
[in] Имя нового класса окна. Если значение NULL, ATL создаст имя класса окна.
style
[in] Стиль окна.
bkgnd
[in] Цвет фона окна.
Замечания
Этот макрос позволяет указать параметры класса нового класса окна, сведения о которых будут управляться CWndClassInfo. DECLARE_WND_CLASS_EX определяет новый класс окна, реализуя следующую статическую функцию:
static CWndClassInfo& GetWndClassInfo();
Если вы хотите использовать стили по умолчанию и цвет фона, используйте макрос DECLARE_WND_CLASS . Дополнительные сведения об использовании окон в ATL см. в статье "Классы окон ATL".