Utilizzando Windows contenuto
Implementa ATL contenute le finestre con CContainedWindowT.Una finestra che rappresenta una finestra che delega i messaggi un oggetto contenitore anziché gestirli nella propria classe.
[!NOTA]
Non è necessario derivare una classe da CContainedWindowT per utilizzare le finestre contenute.
Con windows, è contenuto è una superclasse una classe o una sottoclasse esistente di Windows una finestra esistente.Per creare una finestra superiore una classe esistente di Windows, è necessario specificare il nome della classe esistente nel costruttore per l'oggetto CContainedWindowT.Successivamente chiamare CContainedWindowT::Create.Creare una sottoclasse di una finestra esistente, non è necessario specificare un nome di classe di Windows (sessione NULL al costruttore).È sufficiente chiamare il metodo CContainedWindowT::SubclassWindow con un handle di finestra che viene impostata come sottoclasse.
In genere si utilizzano le finestre contenute come membri dati di una classe di contenitori.Il contenitore non deve essere una finestra; tuttavia, deve derivare da CMessageMap.
Una finestra che può utilizzare più mappe messaggi alternate per gestire i messaggi.Se si dispone di più finestre contenuto, è necessario dichiarare diverse mappe messaggi alternate, ognuno corrispondente a una finestra separata contenuta.
Esempio
Di seguito è riportato un esempio di una classe di contenitori con due finestre contenute:
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()
};
Per ulteriori informazioni sulle finestre contenuti, vedere l'esempio Esempio SUBEDIT.