CContainedWindow

szab&lon lt, klasaTBase= CWindow, klasaTWinTraits = CControlWinTraits >
Klasa CContainedWindowT: TBase publicznych

Parametry

TBase

Klasa podstawowa nową klasę. Domyślna klasa podstawowa jest CWindow.

TWinTraits

Klasa cech, która określa style dla okna. Wartością domyślną jest CControlWinTraits.

Uwaga   CContainedWindow jest CContainedWindowT. Jeśli chcesz zmienić klasy podstawowej lub cech, użyj CContainedWindowT bezpośrednio.

CContainedWindow implementuje okno zawartych w innym obiekcie. CContainedWindowokno procedura wykorzystuje mapy wiadomości w obiektu zawierającego bezpośrednich do odpowiedniej obsługi wiadomości. Podczas konstruowania obiektu CContainedWindow , należy określić które mapę wiadomości powinny być stosowane.

CContainedWindow pozwala utworzyć nowe okno superclassing istniejącej klasy okna. Metody Create rejestruje po raz pierwszy klasy okna, który opiera się na istniejącej klasy, ale korzysta z CContainedWindow::WindowProc. Create tworzy następnie okno na podstawie tej nowej klasy okna. Każde wystąpienie CContainedWindow można superklasę klasy innego okna.

CContainedWindow obsługuje również okno podklasy. Metoda SubclassWindow dołącza istniejący okno do obiektu CContainedWindow i zmiany procedury okno CContainedWindow::WindowProc. Każde wystąpienie CContainedWindow można podklasy innego okna.

Uwaganbsp;  Dla każdego danego obiektu CContainedWindow wywołanie funkcji Utwórz lub SubclassWindow. &Nie należy wywoływać obie metody dla tego samego obiektu.

Podczas korzystania z opcji Dodaj kontroli na podstawie w Kreatorze obiektu ATL Kreator automatycznie doda członek danych CContainedWindow do klasy wdrażania kontroli. Poniższy przykład pobiera się z SUBEDIT próbki i pokazuje jak zamknięte okno jest zadeklarowany

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;
   }

   ...
};
Aby uzyskać więcej informacji o Patrz:
Tworzenie formantów ATL samouczek
Przy użyciu okna w ATL ATL okno klasy
Kreator obiektu ATL Tworzenie projektu ATL
Windows System Windows i kolejnych tematów w zestawie SDK platformy
Instacji Okno procedury podklasy Platform SDK
Superclassing Okno procedury Superclassing Platform SDK

# include lt;atlwin.h>

Członkowie klasy

Zobacz też

CWindow, CWindowImpl, CMessageMap, BEGIN_MSG_MAP, ALT_MSG_MAP

Index