CWindowImpl Class
Предоставляет методы для создания и создание подкласса для окна.
Важно!
Этот класс и его элементов нельзя использовать в приложениях, выполняемых в Среда выполнения Windows.
template <
class T,
class TBase= CWindow,
class TWinTraits= CControlWinTraits
>
class ATL_NO_VTABLE CWindowImpl :
public CWindowImplBaseT< TBase, TWinTraits>
Параметры
T
Новый класс, производный от CWindowImpl.TBase
Базовый класс класса. По умолчанию базовый класс CWindow.TWinTraits
Класс traits, определяющий стили для данного окна. Значение по умолчанию: CControlWinTraits.
Члены
Открытые методы
Имя |
Описание |
---|---|
Создается окно. |
Методы CWindowImplBaseT
Предоставляет обработку сообщения по умолчанию. |
|
Возвращает текущее сообщение. |
|
Возвращает текущую процедура окна. |
|
Вызывается после последнего сообщения обычно получает ( WM_NCDESTROY). |
|
Подклассы окно. |
|
Восстановление ранее является подклассом окно. |
Статические методы
Возвращает статический экземпляр 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 также поддерживает создание подкласса для окна. Метод 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