Classe di CContainedWindowT
Questa classe implementa una finestra contenuta in un altro oggetto.
Importante |
---|
Questa classe e i relativi membri non possono essere utilizzati nelle applicazioni eseguite in Windows Runtime. |
template <
class TBase= CWindow,
class TWinTraits= CControlWinTraits
>
class CContainedWindowT :
public TBase
Parametri
TBase
La classe base della nuova classe.La classe base predefinita è CWindow.TWinTraits
I tratti classe che definisce gli stili per la finestra.Il valore predefinito è CControlWinTraits.
[!NOTA]
CContainedWindow è una specializzazione CContainedWindowT.Se si desidera modificare la classe di base o i tratti, utilizzare direttamente CContainedWindowT.
Membri
Costruttori pubblici
Nome |
Descrizione |
---|---|
Costruttore.Inizializza i membri dati per specificare quali mappa messaggi elaborerà i messaggi della finestra contenuta. |
Metodi pubblici
Nome |
Descrizione |
---|---|
Crea una finestra. |
|
Fornisce l'elaborazione dei messaggi predefinito. |
|
Restituisce il messaggio corrente. |
|
Registrazione della classe della finestra contenuta. |
|
Rappresenta una sottoclasse di una finestra. |
|
Modificare la mappa messaggi viene utilizzata per elaborare i messaggi della finestra contenuta. |
|
Ripristina una finestra precedentemente impostata come sottoclasse. |
|
(Proprietà statica) elabora i messaggi inviati alla finestra contenuta. |
Membri dati pubblici
Nome |
Descrizione |
---|---|
Identifica la mappa messaggi elaborerà i messaggi della finestra contenuta. |
|
Specifica il nome di una classe finestra esistente in cui una nuova classe della finestra verrà basata su. |
|
Punta alla routine della finestra della classe finestra. |
|
Punti all'oggetto contenitore. |
Note
CContainedWindowT implementa una finestra contenuta in un altro oggetto.Utilizzare la routine della finestra di CContainedWindowT una mappa messaggi nell'oggetto contenitore ai messaggi diretti ai gestori appropriati.Nel creare un oggetto CContainedWindowT, specificare quale mappa messaggi deve essere utilizzata.
CContainedWindowT consente di creare una nuova finestra una superclasse basata su una classe finestra esistente.Il metodo Crea innanzitutto registrata una classe finestra basata su una classe esistente ma utilizza CContainedWindowT::WindowProc.Crea crea quindi una finestra basata sulla nuova classe della finestra.Ogni istanza CContainedWindowT boxing di una superclasse una classe finestra diversa.
CContainedWindowT supporta inoltre la creazione di una sottoclasse della finestra.Il metodo SubclassWindow associa una finestra esistente all'oggetto CContainedWindowT e modifica la routine della finestra CContainedWindowT::WindowProc.Ogni istanza CContainedWindowT boxing della sottoclasse di una finestra diversa.
[!NOTA]
Per un dato oggetto CContainedWindowT, chiamare Crea o SubclassWindow.Non è necessario chiamare entrambi i metodi nello stesso oggetto.
Quando si utilizza l'opzione Add control based on nella creazione guidata progetto ATL, la procedura guidata viene automaticamente aggiunto un membro dati CContainedWindowT la classe che implementa il controllo.Il seguente esempio mostra come la finestra contenuto viene dichiarata:
public:
// Declare a contained window data member
CContainedWindow m_ctlEdit;
// 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_ctlEdit(_T("Edit"), this, 1)
{
m_bWindowOnly = TRUE;
}
// Declare the default message map, identified by '0'
BEGIN_MSG_MAP(CAtlEdit)
MESSAGE_HANDLER(WM_CREATE, OnCreate)
MESSAGE_HANDLER(WM_SETFOCUS, OnSetFocus)
CHAIN_MSG_MAP(CComControl<CAtlEdit>)
// 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*/)
{
RECT rc;
GetWindowRect(&rc);
rc.right -= rc.left;
rc.bottom -= rc.top;
rc.top = rc.left = 0;
m_ctlEdit.Create(m_hWnd, rc, _T("hello"), WS_CHILD | WS_VISIBLE |
ES_MULTILINE | ES_AUTOVSCROLL);
return 0;
}
Per ulteriori informazioni su |
Vedere |
---|---|
Creazione di controlli |
|
Utilizzando le finestre in ATL |
|
Creazione guidata progetto ATL |
|
Windows |
Finestre e argomenti successivi in Windows SDK |
Gerarchia di ereditarietà
TBase
CContainedWindowT
Requisiti
Header: atlwin.h