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>
Zobacz też
CWindow, CWindowImpl, CMessageMap, BEGIN_MSG_MAP, ALT_MSG_MAP