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


Макросы класса окна

Эти макросы определяют служебные программы класса окон.

Имя Описание
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".

См. также

Макросы