ATL implementuje zamkniętego systemu windows z CContainedWindow. Zamknięte okno reprezentuje okno, w którym przekazuje swoje wiadomości do obiektu kontenera zamiast ich obsługę w jej własnej klasy.
Uwaganbsp; &Nie trzeba pochodną klasy CContainedWindow do zamkniętego systemu Windows.
Z zamkniętego systemu windows można albo superklasy istniejącego systemu Windows klasy lub podklasy istniejące okno. Aby utworzyć okna tego superklas istniejącego systemu Windows klasy, najpierw określić istniejącą nazwę klasy w konstruktorze dla obiektu CContainedWindow . Następnie wywołać CContainedWindow::Create. Do podklasy thumbnail trzeba określić nazwę klasy Windows (legitymacja NULL do konstruktora). Po prostu wywołania metody CContainedWindow::SubclassWindow z dojście do okna jest podklasą klasy.
Zwykle używasz windows zawarte jako członkowie danych klasy kontenerów. Pojemnik musi być okno; Jednakże musi pochodzić od CMessageMap.
Zamknięte okno można używać alternatywnej wiadomości mapy do jego wiadomości. Jeśli masz więcej niż jedno okno zamkniętego, należy zadeklarować że kilka alternatywnych wiadomości mapy, każdej odpowiadającej osobne okno zamkniętego.
Oto przykład klasy kontenerów z dwóch zamkniętego systemu windows:
klasa CMyContainer: CMessageMap publicznych,...
{
publiczne:
nbsp; CContainedWindow m_wndEdit;
CContainedWindow m_wndList;
CMyContainer(): m_wndEdit ("Edytuj", to 1), m_wndList ("Wykaz", to, 2).
{
}
...
BEGI&N_MSG_MAP(CMyContainer)
ALT_MSG_MAP(1)
/ / obsługi w oknie Edytuj go tutaj
ALT_MSG_MAP(2)
/ / obsługi dla okna Lista go tutaj
END_MSG_MAP()
}
Aby uzyskać więcej informacji na temat zamkniętego systemu windows, zobacz SUBEDIT próbki. Aby uzyskać więcej informacji na temat superclassing i podklasy, zobacz Okno procedury Superclassing i Okno procedury podklasy w zestawie Win32 SDK.