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


Using Contained Windows

Инструменты библиотеки ATL содержали окна с CContainedWindowT. Содержащийся окно представляет окно, в объект-контейнеру делегатов сообщения вместо обработки их в собственном классе.

Примечание

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

С окнами, которые содержат может любой суперкласс существующие класс или подкласс Windows существующее окно. Создать поле, которое суперклассы существующий класс Windows, сначала определить существующее имя класса в конструкторе объекта CContainedWindowT. Затем вызовите CContainedWindowT::Create. В подклассу существующее окно не нужно указывать имя класса Windows ( NULL передайте конструктору). Просто вызовите метод CContainedWindowT::SubclassWindow с маркером в subclassed окно.

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

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

Пример

Ниже приведен пример класса контейнера с 2, содержащиеся окнами:

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.

См. также

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

Классы окон ATL