Класс 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.