Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Замечание
Библиотека активных шаблонов (ATL) продолжает поддерживаться. Однако мы больше не добавляем функции или обновляем документацию.
Этот класс предоставляет методы регистрации сведений для класса окна.
Внимание
Этот класс и его члены нельзя использовать в приложениях, выполняемых в среде выполнения 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, как описано в следующей таблице:
| Макрос | Описание |
|---|---|
| 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.