шаблон < классTBase= CWindow, классTWinTraits = CControlWinTraits >
класс CContainedWindowT: государственные TBase
Параметры
TBase
Базовый класс для нового класса. Базовый класс по умолчанию — CWindow.
TWinTraits
Черты класс, определяющий стили для вашего окна. Значение по умолчанию — CControlWinTraits.
Примечание CContainedWindow это специализация CContainedWindowT. Если вы хотите изменить базовый класс или черты, непосредственно используйте CContainedWindowT.
CContainedWindow реализует окна, содержащихся внутри другого объекта. Процедура окна CContainedWindowиспользует схемы сообщений в содержащего объект для направления сообщения в соответствующие обработчики. При создании объекта CContainedWindow , необходимо указать какие схемы сообщений следует использовать.
CContainedWindow позволяет вам создать новое окно, суперкласс существующий класс окон. Метод Create сначала регистрирует класс окна, который основан на существующем классе, но использует CContainedWindow::WindowProc. Затем CREATE создает окно, на основе этого нового класса окна. Каждый экземпляр CContainedWindow можно суперклассов класса различные окна.
CContainedWindow также поддерживает окно подклассы. SubclassWindow метод придает существующему окну к CContainedWindow объекту и изменяет процедуру окна на CContainedWindow::WindowProc. Каждый экземпляр CContainedWindow можно подкласс другое окно.
Примечание Для любого заданного объекта CContainedWindow вызовите Create или SubclassWindow. Вы не должны ссылаться оба метода на тот же объект.
При использовании параметра Добавить элемент управления, основанный на в мастере объектов ATL, мастер автоматически добавит элемент данных CContainedWindow к классу, реализующему элемент управления. Следующий пример взят из образец SUBEDIT и показано, как объявляется содержит окно
class CAtlEdit : ...
{
public:
// Declare a contained window data member
CContainedWindow m_EditCtrl;
// 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_EditCtrl(_T("EDIT"), this, 1)
{
m_bWindowOnly = TRUE;
}
// Declare the default message map,
// identified by '0'
BEGIN_MSG_MAP(CAtlEdit)
...
MESSAGE_HANDLER(WM_CREATE, OnCreate)
...
// 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)
{
...
m_EditCtrl.Create(m_hWnd, rc, _T("hello"),
WS_CHILD | WS_VISIBLE |
ES_MULTILINE | ES_AUTOVSCROLL);
return 0;
}
...
};
| Для получения дополнительных сведений о | См. |
| Создание элементов управления | Учебник ATL |
| Использование windows в ATL | Классы ATL окна |
| Мастер объектов ATL | Создание проекта библиотеки ATL |
| Windows | Окна и последующие темы в Platform SDK |
| Создание подклассов | Подклассы процедура окна в Platform SDK |
| Суперкласс | Суперкласс процедура окна в Platform SDK |
# include lt;atlwin.h>
Родственные слова
CWindow, CWindowImpl, CMessageMap, BEGIN_MSG_MAP, ALT_MSG_MAP