Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Примечание.
Библиотека активных шаблонов (ATL) продолжает поддерживаться. Однако мы больше не добавляем функции или обновляем документацию.
ATL реализует окна с контентом с CContainedWindowT. Инкапсулированное окно — это окно, которое передает свои сообщения объекту-контейнеру, а не обрабатывает их в своем собственном классе.
Примечание.
Для использования вложенных окон не требуется наследовать класс от CContainedWindowT.
С помощью содержащихся окон можно либо породить суперкласс от существующего класса Windows, либо создать подкласс от существующего окна. Чтобы создать окно, которое суперклассирует существующий класс Windows, сначала укажите существующее имя класса в конструкторе CContainedWindowT объекта. Затем вызовите CContainedWindowT::Create. Чтобы подклассировать существующее окно, не нужно указывать имя класса Windows (передайте NULL в конструктор). Просто вызовите метод CContainedWindowT::SubclassWindow с дескриптором окна, которое будет подклассировано.
Обычно вложенные окна используются в качестве элементов данных класса контейнера. Контейнер не должен быть окном; однако он должен быть производным от CMessageMap.
Автономное окно может использовать альтернативные карты сообщений для обработки своих сообщений. Если у вас несколько содержащихся окон, следует объявить несколько альтернативных карт сообщений, каждое из которых соответствует отдельному автономному окну.
Пример
Ниже приведен пример класса контейнера с двумя содержащимися окнами:
class CMyContainer : public CMessageMap
{
public:
CContainedWindow m_wndEdit;
CContainedWindow m_wndList;
CMyContainer() : m_wndEdit(_T("Edit"), this, 1),
m_wndList(_T("List"), this, 2)
{
}
BEGIN_MSG_MAP(CMyContainer)
ALT_MSG_MAP(1)
// handlers for the Edit window go here
ALT_MSG_MAP(2)
// handlers for the List window go here
END_MSG_MAP()
};
Дополнительные сведения о содержащихся окнах см. в примере SUBEDIT .