CContainedWindowT Class
Этот класс реализует окно, содержащихся в другой объект.
Важно!
Этот класс и его члены нельзя использовать в приложениях, выполняемых в этой среде выполнения Windows.
template <
class TBase= CWindow,
class TWinTraits= CControlWinTraits
>
class CContainedWindowT :
public TBase
Параметры
TBase
Базовый класс для нового класса. По умолчанию базовый класс CWindow.TWinTraits
Признаки классифицируют, которое определяет стили для окна. Значение по умолчанию: CControlWinTraits.
Примечание
CContainedWindow специализация CContainedWindowT.Если нужно изменить базовый класс или признаки, используйте CContainedWindowT напрямую.
Члены
Открытые конструкторы
Имя |
Описание |
---|---|
Конструктор. Инициализирует элементы данных, чтобы определить, сопоставление сообщений будет обработки сообщений, содержащихся в окне. |
Открытые методы
Имя |
Описание |
---|---|
Создается окно. |
|
Предоставляет обработку сообщений по умолчанию. |
|
Возвращает текущее сообщение. |
|
Регистрирует класс окна, содержащихся в окне. |
|
Подклассы окно. |
|
Изменяет сопоставление сообщения, который используется для обработки сообщений, содержащихся в окне. |
|
Получает ранее subclassed окно. |
|
(Статический) Обрабатывает сообщения, отправляемые, содержащихся в окне. |
Открытые члены данных
Имя |
Описание |
---|---|
Определяет, какому сопоставление сообщений будет обработки сообщений, содержащихся в окне. |
|
Указывает имя существующего класса окна, в котором будет основан класс нового окна. |
|
Указывает на процедуру окна тип окна. |
|
Точки для содержащего объект. |
Заметки
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 |
|
Окна |
Windows и последующие в подразделах Windows SDK |
Иерархия наследования
TBase
CContainedWindowT
Требования
Header: atlwin.h