Classi di finestra derivate
È possibile creare finestre direttamente da CWnd
o derivare nuove classi di finestre da CWnd
. Si tratta di come in genere si creano finestre personalizzate. Tuttavia, la maggior parte delle finestre usate in un programma framework viene invece creata da una delle CWnd
classi frame-window derivate fornite da MFC.
Classi della finestra cornice
CFrameWnd
Utilizzato per le finestre cornice SDI che incorniciano un singolo documento e la relativa visualizzazione. La finestra cornice è sia la finestra cornice principale per l'applicazione che la finestra cornice per il documento corrente.
CMDIFrameWnd
Usato come finestra cornice principale per le applicazioni MDI. La finestra cornice principale è un contenitore per tutte le finestre dei documenti MDI e condivide la barra dei menu con esse. Una finestra cornice MDI è una finestra di primo livello visualizzata sul desktop.
CMDIChildWnd
Usato per i singoli documenti aperti in una finestra cornice principale MDI. Ogni documento e la relativa visualizzazione sono incorniciati da una finestra cornice figlio MDI contenuta nella finestra cornice principale MDI. Una finestra figlio MDI è simile a una finestra cornice tipica, ma è contenuta all'interno di una finestra cornice MDI anziché seduta sul desktop. Tuttavia, la finestra figlio MDI non dispone di una barra dei menu personalizzata. Deve condividere la barra dei menu della finestra cornice MDI che lo contiene.
Per altre informazioni, vedere Finestre cornice.
Altre classi di finestre derivate da CWnd
Oltre alle finestre cornice, diverse altre categorie principali di finestre sono derivate da CWnd
:
Visualizzazioni:
Le viste vengono create usando laCWnd
classeCView
derivata da o una delle relative classi derivate. Una visualizzazione è collegata a un documento e funge da intermediario tra il documento e l'utente. Una visualizzazione è una finestra figlio (non un figlio MDI) che in genere riempie l'area client di una finestra cornice SDI o una finestra cornice figlio MDI (o quella parte dell'area client non coperta da una barra degli strumenti o da una barra di stato).Finestre di dialogo:
Le finestre di dialogo vengono create usando laCWnd
classeCDialog
derivata da .Moduli:
Le visualizzazioni modulo basate sulle risorse del modello di finestra di dialogo, ad esempio le finestre di dialogo, vengono create usando classiCFormView
,CRecordView
oCDaoRecordView
.Controlli:
I controlli come pulsanti, caselle di riepilogo e caselle combinate vengono creati usando altre classi derivate daCWnd
. Vedere Argomenti relativi al controllo.Barre di controllo:
Finestre figlio che contengono controlli. Gli esempi includono barre degli strumenti e barre di stato. Vedere Barre di controllo.
Gerarchia della classe Window
Fare riferimento al grafico gerarchia MFC nel riferimento MFC. Le visualizzazioni sono illustrate nell'architettura documento/visualizzazione. Le finestre di dialogo sono illustrate nelle finestre di dialogo.
Creazione di classi finestra per scopi speciali
Oltre alle classi finestra fornite dalla libreria di classi, potrebbero essere necessarie finestre figlio per scopi speciali. Per creare una finestra di questo tipo, creare la propria CWnd
classe derivata da e impostarla come finestra figlio di una cornice o di una vista. Tenere presente che il framework gestisce l'estensione dell'area client di una finestra cornice documento. La maggior parte dell'area client è gestita da una visualizzazione, ma altre finestre, ad esempio le barre di controllo o le finestre personalizzate, possono condividere lo spazio con la visualizzazione. Potrebbe essere necessario interagire con i meccanismi nelle classi CView
e CControlBar
per posizionare le finestre figlio nell'area client di una finestra cornice.
La creazione di finestre illustra la creazione di oggetti finestra e le finestre gestite.