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


Класс CWndClassInfo

Этот класс предоставляет методы регистрации сведений для класса окна.

Важно!

Этот класс и его члены нельзя использовать в приложениях, выполняемых в среде выполнения Windows.

Синтаксис

class CWndClassInfo

Участники

Открытые методы

Имя Описание
Зарегистрировать Регистрирует класс окна.

Элементы данных

Имя Описание
m_atom Уникально идентифицирует зарегистрированный класс окна.
m_bSystemCursor Указывает, ссылается ли ресурс курсора на системный курсор или курсор, содержащийся в ресурсе модуля.
m_lpszCursorID Указывает имя ресурса курсора.
m_lpszOrigName Содержит имя существующего класса окна.
m_szAutoName Содержит созданное ATL имя класса окна.
m_wc Сохраняет сведения о классе окна в WNDCLASSEX структуре.
pWndProc Указывает на процедуру окна существующего класса окна.

Замечания

CWndClassInfo управляет сведениями класса окна. Обычно используется CWndClassInfo один из трех макросов, DECLARE_WND_CLASS, DECLARE_WND_CLASS_EX или DECLARE_WND_SUPERCLASS, как описано в следующей таблице:

Макрос Description
DECLARE_WND_CLASS CWndClassInfo регистрирует сведения для нового класса окна.
DECLARE_WND_CLASS_EX CWndClassInfo регистрирует сведения для нового класса окна, включая параметры класса.
DECLARE_WND_SUPERCLASS CWndClassInfo регистрирует сведения для класса окон, основанного на существующем классе, но использует другую процедуру окна. Этот метод называется суперклассированием.

По умолчанию CWindowImpl включает DECLARE_WND_CLASS макрос для создания окна на основе нового класса окна. DECLARE_WND_CLASS предоставляет стили и цвет фона по умолчанию для элемента управления. Если вы хотите самостоятельно указать стиль и цвет фона, наследуйте класс и CWindowImpl включите макрос DECLARE_WND_CLASS_EX в определение класса.

Если вы хотите создать окно на основе существующего класса окна, наследуйте класс и CWindowImpl включите макрос DECLARE_WND_SUPERCLASS в определение класса. Например:

class ATL_NO_VTABLE CMyWindow :
   OtherInheritedClasses
   public CComControl<CMyWindow>
          // CComControl derives from CWindowImpl
{
public:
   // 1. The NULL parameter means ATL will generate a
   //    name for the superclass
   // 2. The "EDIT" parameter means the superclass is
   //    based on the standard Windows Edit box
   DECLARE_WND_SUPERCLASS(NULL, _T("EDIT"))

   // Remainder of class declaration omitted

Дополнительные сведения о классах окон см. в разделе "Классы окон" в пакете SDK для Windows.

Дополнительные сведения об использовании окон в ATL см. в статье "Классы окон ATL".

Требования

Заголовок: atlwin.h

CWndClassInfo::m_atom

Содержит уникальный идентификатор зарегистрированного класса окна.

ATOM m_atom;

CWndClassInfo::m_bSystemCursor

Если значение TRUE, ресурс системного курсора будет загружен при регистрации класса окна.

BOOL m_bSystemCursor;

Замечания

В противном случае ресурс курсора, содержащийся в модуле, будет загружен.

CWndClassInfo используется m_bSystemCursor только в том случае, если указан DECLARE_WND_CLASS (по умолчанию в CWindowImpl) или макрос DECLARE_WND_CLASS_EX . В этом случае m_bSystemCursor инициализируется значение TRUE. Дополнительные сведения см. в обзоре CWndClassInfo .

CWndClassInfo::m_lpszCursorID

Указывает имя ресурса курсора или идентификатор ресурса в слове с низким порядком и ноль в слове высокого порядка.

LPCTSTR m_lpszCursorID;

Замечания

Когда класс окна зарегистрирован, дескриптор, определяемый m_lpszCursorID курсором, извлекается и сохраняется m_wc.

CWndClassInfo используется m_lpszCursorID только в том случае, если указан DECLARE_WND_CLASS (по умолчанию в CWindowImpl) или макрос DECLARE_WND_CLASS_EX . В этом случае m_lpszCursorID инициализируется в IDC_ARROW. Дополнительные сведения см. в обзоре CWndClassInfo .

CWndClassInfo::m_lpszOrigName

Содержит имя существующего класса окна.

LPCTSTR m_lpszOrigName;

Замечания

CWndClassInfo используется m_lpszOrigName только при включении макроса DECLARE_WND_SUPERCLASS в определение класса. В этом случае CWndClassInfo регистрирует класс окна на основе класса с m_lpszOrigNameименем . Дополнительные сведения см. в обзоре CWndClassInfo .

CWndClassInfo::m_szAutoName

Содержит имя класса окна.

TCHAR m_szAutoName[13];

Замечания

CWndClassInfoиспользуется m_szAutoName только в том случае, если значение NULL передается для WndClassName параметра DECLARE_WND_CLASS, DECLARE_WND_CLASS_EX или DECLARE_WND_SUPERCLASS. ATL создаст имя при регистрации класса окна.

CWndClassInfo::m_wc

Сохраняет сведения о классе окна в структуре WNDCLASSEX .

WNDCLASSEX m_wc;

Замечания

Если вы указали DECLARE_WND_CLASS (по умолчанию в CWindowImpl) или макрос DECLARE_WND_CLASS_EX, m_wc содержит сведения о новом классе окна.

Если вы указали макрос DECLARE_WND_SUPERCLASS , содержит сведения о суперклассе — классе окон, основанном на существующем классе, m_wc но использует другую процедуру окна. m_lpszOrigName и pWndProc сохраняют имя и процедуру окна существующего класса окна соответственно.

CWndClassInfo::p WndProc

Указывает на процедуру окна существующего класса окна.

WNDPROC pWndProc;

Замечания

CWndClassInfo используется pWndProc только при включении макроса DECLARE_WND_SUPERCLASS в определение класса. В этом случае CWndClassInfo регистрирует класс окна, основанный на существующем классе, но использует другую процедуру окна. Процедура окна существующего класса окна сохраняется в pWndProc. Дополнительные сведения см. в обзоре CWndClassInfo .

CWndClassInfo::Register

Вызывается CWindowImpl::Create, чтобы зарегистрировать класс окна, если он еще не зарегистрирован.

ATOM Register(WNDPROC* pProc);

Параметры

pProc
[out] Задает исходную процедуру окна существующего класса окна.

Возвращаемое значение

При успешном выполнении атом, который однозначно идентифицирует зарегистрированный класс окна. В противном случае флагу присваивается значение 0.

Замечания

Если вы указали DECLARE_WND_CLASS (по умолчанию в CWindowImpl) или макрос DECLARE_WND_CLASS_EX, Register регистрирует новый класс окна. В этом случае параметр pProc не используется.

Если вы указали макрос DECLARE_WND_SUPERCLASS , Register регистрирует суперкласс — класс окна, основанный на существующем классе, но использует другую процедуру окна. Процедура окна существующего класса окна возвращается в pProc.

См. также

Класс CComControl
Общие сведения о классе