Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Annotazioni
La libreria Microsoft Foundation Classes (MFC) continua a essere supportata. Tuttavia, non aggiungiamo più funzionalità né aggiorniamo la documentazione.
In alcune applicazioni, ad esempio un'applicazione SDI o MDI, è necessario incorporare un controllo in una finestra dell'applicazione. La funzione Create member della classe wrapper, inserita da Visual Studio, può creare un'istanza del controllo in modo dinamico, senza la necessità di una finestra di dialogo.
La funzione Create member ha i parametri seguenti:
lpszWindowName
Puntatore al testo da visualizzare nella proprietà Text o Caption del controllo (se presente).
dwStyle
Stili di Windows. Per un elenco completo, vedere CWnd::CreateControl.
rettangolo
Specifica le dimensioni e la posizione del controllo.
pParentWnd
Specifica la finestra padre del controllo, in genere un oggetto CDialog. Non deve essere NULL.
nID
Specifica l'ID del controllo e può essere usato dal contenitore per fare riferimento al controllo.
Un esempio di utilizzo di questa funzione per creare dinamicamente un controllo ActiveX sarebbe in una vista modulo di un'applicazione SDI. È quindi possibile creare un'istanza del controllo nel WM_CREATE gestore dell'applicazione.
Per questo esempio, CMyView è la classe di visualizzazione principale, CCirc è la classe wrapper e CIRC. H è l'intestazione (. H) file della classe wrapper.
L'implementazione di questa funzionalità è un processo in quattro passaggi.
Per creare dinamicamente un controllo ActiveX in una finestra non di dialogo
Inserire CIRC. H in CMYVIEW. H, subito prima della definizione della
CMyViewclasse:#include "circ.h"Aggiungere una variabile membro (di tipo
CCirc) alla sezione protetta della definizione dellaCMyViewclasse che si trova in CMYVIEW. H:class CMyView : public CView {protected: CCirc m_myCtl; public: afx_msg void OnViewCircdlg(); };Aggiungere un
WM_CREATEgestore di messaggi alla classeCMyView.Nella funzione
CMyView::OnCreatedel gestore eseguire una chiamata alla funzione delCreatecontrollo usando ilthispuntatore come finestra padre:int CMyView::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CView::OnCreate(lpCreateStruct) == -1) return -1; m_myCtl.Create(NULL, WS_VISIBLE, CRect(50, 50, 100, 100), this, 0); m_myCtl.SetCaption(_T("Control created")); return 0; }Ricostruire il progetto. Ogni volta che viene creata la visualizzazione dell'applicazione, verrà creato un controllo Circ in modo dinamico.