CContainedWindow

шаблон < класTBase= CWindow, класTWinTraits = CControlWinTraits >
клас CContainedWindowT: Громадська TBase

Параметри

TBase

Базовий клас новий клас. Базовий клас за замовчуванням є CWindow.

TWinTraits

Клас риси, що визначає стилі для вашого вікна. За замовчуванням використовується CControlWinTraits.

Примітка   CContainedWindow є спеціалізація CContainedWindowT. Якщо ви хочете змінити базового класу або Чорт, використовувати CContainedWindowT напряму.

CContainedWindow реалізує вікна, що містяться в іншому об'єкті. Процедура CContainedWindowвікно використовує мапі повідомлення в об'єкті, що містить прямі повідомлення до відповідних обробників. При складанні CContainedWindow об'єкт, ви вказати, які повідомлення карти повинні бути використані.

CContainedWindow дає змогу створити нове вікно на superclassing існуючого класу вікна. Метод Створення реєструється спочатку клас вікна, що на основі існуючого класу, але використовує CContainedWindow::WindowProc. Створити створює вікні базується на цей новий клас вікна. Кожен екземпляр CContainedWindow можна суперкласу клас різні вікна.

CContainedWindow також підтримує вікно subclassing. Метод SubclassWindow надає наявному вікні CContainedWindow об'єкта і змінює порядок вікна на CContainedWindow::WindowProc. Кожен екземпляр CContainedWindow можна підкласу іншого вікна.

Примітка   Для будь-якого CContainedWindow даного об'єкта зателефонуйте або Створити або 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 Windows і наступні теми у Платформи SDK
Subclassing Вікно процедури Subclassing платформи SDK
Superclassing Вікно процедури Superclassing платформи SDK

# включити lt;atlwin.h>

Члени класу

Дивіться також

CWindow, CWindowImpl, CMessageMap, BEGIN_MSG_MAP, ALT_MSG_MAP

Index