Utilizzando le finestre contenute

ATL implementa le finestre contenute con CContainedWindow. Una finestra contenuta rappresenta una finestra che delega i suoi messaggi a un oggetto contenitore invece di manipolazione nella propria classe.

&Notanbsp;  Non è necessario derivare una classe da CContainedWindow per poter utilizzare le finestre contenute.

Con finestre contenute, è possibile o superclasse di una classe Windows esistente o sottoclasse una finestra esistente. Per creare una finestra che superclassi le finestre esistenti classe, prima di specificare il nome della classe esistente nel costruttore per l'oggetto CContainedWindow . Quindi chiamare CContainedWindow:: create. Sottoclasse una finestra esistente, non è necessario specificare un nome di classe Windows (tessera NULL al costruttore). Semplicemente chiamare il metodo di CContainedWindow::SubclassWindow con l'handle alla finestra sta una sottoclasse.

Finestre contenute viene in genere utilizzato come membri di dati di una classe contenitore. Il contenitore non ha bisogno di essere una finestra; Tuttavia, essa deve derivare da CMessageMap.

Una finestra di contenuti è possibile utilizzare mappe messaggi alternativo per gestire i suoi messaggi. Se hai più di una finestra di contenuti, si deve dichiarare che si alternano diverse mappe messaggi, ciascuna corrispondente ad una finestra separata e contenuta.

Di seguito è riportato un esempio di una classe contenitore con due finestre contenute:

classe CMyContainer: CMessageMap pubblica,...
{
pubblica:
 nbsp; CContainedWindow m_wndEdit;
   CContainedWindow m_wndList;

CMyContainer(): m_wndEdit ("modifica", questo, 1), m_wndList ("Lista", questo, 2).
   {
   }

...

BEGI&N_MSG_MAP(CMyContainer)
   ALT_MSG_MAP(1)
      / / gestori per finestra Modifica vanno qui
   ALT_MSG_MAP(2)
      / / gestori per finestra Elenco vanno qui
   END_MSG_MAP()

}

Per ulteriori informazioni sulle finestre contenute, vedere la esempio SUBEDIT . Per ulteriori informazioni sulla creazione di superclassi e sottoclassi, vedere Finestra procedura di creazione di superclassi e Finestra procedura Subclassing in Win32 SDK.

Index