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


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.

Члены

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

Имя

Описание

CWindowImpl::Create

Создается окно.

Методы CWindowImplBaseT

DefWindowProc

Предоставляет обработку сообщения по умолчанию.

GetCurrentMessage

Возвращает текущее сообщение.

GetWindowProc

Возвращает текущую процедура окна.

OnFinalMessage

Вызывается после последнего сообщения обычно получает ( WM_NCDESTROY).

SubclassWindow

Подклассы окно.

UnsubclassWindow

Восстановление ранее является подклассом окно.

Статические методы

GetWndClassInfo

Возвращает статический экземпляр CWndClassInfo, управляющий данные класса окна.

WindowProc

Сообщения, отправляемые процессов в окно.

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

m_pfnSuperWindowProc

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

Заметки

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

Классы окна ATL

Мастер проекта библиотеки ATL

Создание проекта библиотеки ATL

Иерархия наследования

CMessageMap

TBase

CWindowImplRoot

CWindowImplBaseT

CWindowImpl

Требования

Header: atlwin.h

См. также

Ссылки

BEGIN_MSG_MAP

CComControl Class

Другие ресурсы

ATL Class Overview