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


CContainedWindowT Class

Этот класс реализует окно, содержащихся в другой объект.

Важно!

Этот класс и его члены нельзя использовать в приложениях, выполняемых в этой среде выполнения Windows.

template < 
class TBase= CWindow, 
class TWinTraits= CControlWinTraits  
> 
class CContainedWindowT : 
public TBase

Параметры

  • TBase
    Базовый класс для нового класса. По умолчанию базовый класс CWindow.

  • TWinTraits
    Признаки классифицируют, которое определяет стили для окна. Значение по умолчанию: CControlWinTraits.

Примечание

CContainedWindow специализация CContainedWindowT.Если нужно изменить базовый класс или признаки, используйте CContainedWindowT напрямую.

Члены

Открытые конструкторы

Имя

Описание

CContainedWindowT::CContainedWindowT

Конструктор. Инициализирует элементы данных, чтобы определить, сопоставление сообщений будет обработки сообщений, содержащихся в окне.

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

Имя

Описание

CContainedWindowT::Create

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

CContainedWindowT::DefWindowProc

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

CContainedWindowT::GetCurrentMessage

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

CContainedWindowT::RegisterWndSuperclass

Регистрирует класс окна, содержащихся в окне.

CContainedWindowT::SubclassWindow

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

CContainedWindowT::SwitchMessageMap

Изменяет сопоставление сообщения, который используется для обработки сообщений, содержащихся в окне.

CContainedWindowT::UnsubclassWindow

Получает ранее subclassed окно.

CContainedWindowT::WindowProc

(Статический) Обрабатывает сообщения, отправляемые, содержащихся в окне.

Открытые члены данных

Имя

Описание

CContainedWindowT::m_dwMsgMapID

Определяет, какому сопоставление сообщений будет обработки сообщений, содержащихся в окне.

CContainedWindowT::m_lpszClassName

Указывает имя существующего класса окна, в котором будет основан класс нового окна.

CContainedWindowT::m_pfnSuperWindowProc

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

CContainedWindowT::m_pObject

Точки для содержащего объект.

Заметки

CContainedWindowT реализует окно, содержащихся в другой объект. Процедура окна CContainedWindowT использует сопоставление сообщения в содержащем объекте значение direct сообщения соответствующим обработчикам. При создании объекта CContainedWindowT указывается, сопоставление сообщения должно использоваться.

CContainedWindowT позволяет создать новое окно, superclassing существующий класс окна. Метод Создать сначала регистрирует класс окна, основанный на существующем классе, но пользах CContainedWindowT::WindowProc. Создать затем создает окно, основанное на этом классе нового окна. Каждый экземпляр CContainedWindowT может суперкласс другой класс окна.

CContainedWindowT также поддерживает окно subclassing. Метод SubclassWindow вложение существующее окно к объекту CContainedWindowT и изменяет процедура окна в CContainedWindowT::WindowProc. Каждый экземпляр CContainedWindowT может подкласс другое окно.

Примечание

Для любого заданного объекта CContainedWindowT, вызовите метод Создать или SubclassWindow.Не следует вызывать оба метода на этом же объекте.

При использовании параметра Добавить элемент управления на основании в мастере проекта библиотеки ATL мастер автоматически добавляет элемент данных CContainedWindowT к классу, реализующему элемент управления. В следующем примере показано, как содержащееся окно объявлена:

public:
   // Declare a contained window data member
   CContainedWindow m_ctlEdit;

   // Initialize the contained window:
   // 1. Pass "Edit" to specify that the contained 
   //    window should be based on the standard 
   //    Windows Edit box
   // 2. Pass 'this' pointer to specify that CAtlEdit 
   //    contains the message map to be used for the 
   //    contained window's message processing
   // 3. Pass the identifier of the message map. '1'
   //    identifies the alternate message map declared
   //    with ALT_MSG_MAP(1)
   CAtlEdit()
      : m_ctlEdit(_T("Edit"), this, 1)
   {
      m_bWindowOnly = TRUE;
   }
// Declare the default message map, identified by '0'
BEGIN_MSG_MAP(CAtlEdit)
   MESSAGE_HANDLER(WM_CREATE, OnCreate)
   MESSAGE_HANDLER(WM_SETFOCUS, OnSetFocus)
   CHAIN_MSG_MAP(CComControl<CAtlEdit>)
// Declare an alternate message map, identified by '1'
ALT_MSG_MAP(1)
   MESSAGE_HANDLER(WM_CHAR, OnChar)
END_MSG_MAP()
// Define OnCreate handler
// When the containing window receives a WM_CREATE
// message, create the contained window by calling
// CContainedWindow::Create
LRESULT OnCreate(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, 
   BOOL& /*bHandled*/)
{
   RECT rc;
   GetWindowRect(&rc);
   rc.right -= rc.left;
   rc.bottom -= rc.top;
   rc.top = rc.left = 0;
   m_ctlEdit.Create(m_hWnd, rc, _T("hello"), WS_CHILD | WS_VISIBLE | 
      ES_MULTILINE | ES_AUTOVSCROLL);
   return 0;
}

Дополнительные сведения

См.

Создание элементов управления

Учебник по библиотеке ATL

Использование окон в библиотеке ATL

Классы окна библиотеки ATL

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

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

Окна

Windows и последующие в подразделах Windows SDK

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

TBase

CContainedWindowT

Требования

Header: atlwin.h

См. также

Ссылки

CWindow Class

CWindowImpl Class

CMessageMap Class

BEGIN_MSG_MAP

ALT_MSG_MAP

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

ATL Class Overview