Класс CWindowImpl
Этот класс содержит методы для создания или subclassing окно.
![]() |
---|
Этот класс и его члены нельзя использовать в приложениях, выполняемых в этой среде выполнения Windows. |
template <
class T,
class TBase= CWindow,
class TWinTraits= CControlWinTraits
>
class ATL_NO_VTABLE CWindowImpl :
public CWindowImplBaseT< TBase, TWinTraits>
Параметры
T
Класс, производный от CWindowImpl.TBase
Базовый класс для нового класса.По умолчанию базовый класс CWindow.TWinTraits
класс признаков, которое определяет стили для окна.Значение по умолчанию: CControlWinTraits.
Члены
Открытые методы
Имя |
Описание |
---|---|
Создается окно. |
Методы CWindowImplBaseT
Предоставляет обработку сообщений по умолчанию. |
|
Возвращает текущее сообщение. |
|
Возвращает текущую процедуру окна. |
|
Вызываемый после получения последнее сообщение (обычно WM_NCDESTROY). |
|
Подклассы окно. |
|
Получает ранее subclassed окно. |
Статические методы
Возвращает статический экземпляр CWndClassInfo, который управляет данные класса окна. |
|
Обрабатывает сообщения, отправляемые окно. |
Элементы данных
Указывает на процедуру окна тип окна. |
Заметки
CWindowImpl позволяет создать новое окно или подкласс существующее окно.Процедура окна CWindowImpl использует сопоставление сообщения для направления сообщений к соответствующим обработчикам.
CWindowImpl::Create создает новое окно, основанное на данных, управляемых CWndClassInfo класса окна.CWindowImpl содержит макрос DECLARE_WND_CLASS, что означает, что CWndClassInfo регистрирует класс нового окна.Если требуется суперклассу существующий класс окна, наследуйте класс от CWindowImpl и включить макрос DECLARE_WND_SUPERCLASS.В этом случае CWndClassInfo регистрирует класс окна, основанный на существующем классе, но пользах CWindowImpl::WindowProc.Примеры.
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
![]() |
---|
Поскольку CWndClassInfo управляет сведения для одного класса окна, каждое окно, созданное с помощью экземпляра CWindowImpl будет основываться на одном и том же классе окна. |
CWindowImpl также поддерживает окно subclassing.Метод SubclassWindow вложение существующее окно к объекту CWindowImpl и изменяет процедура окна в CWindowImpl::WindowProc.Каждый экземпляр CWindowImpl может подкласс другое окно.
![]() |
---|
Для любого заданного объекта CWindowImpl, вызовите метод Создать или SubclassWindow.Не следует вызывать оба метода на этом же объекте. |
В дополнение к CWindowImpl библиотеки ATL предоставляет CContainedWindow, чтобы создать поле, содержащееся внутри другой объект.
Деструктор базового класса (|CWindowImplRoot) гарантирует, что окно, перед тем как объект будет уничтожен на будет найден.
CWindowImpl является производным от CWindowImplBaseT, наследуемый от CWindowImplRoot, который, в свою очередь, наследуется от TBase и CMessageMap.
Дополнительные сведения |
См. |
---|---|
Создание элементов управления |
|
Использование окон в библиотеке ATL |
|
Мастер проекта библиотеки ATL |
|
Окна |
Иерархия наследования
TBase
CWindowImplRoot
CWindowImplBaseT
CWindowImpl
Требования
Header: atlwin.h