Classi di finestre derivate
È possibile creare finestre direttamente da CWnd oppure derivare nuove classi di finestre da CWnd. In questo modo si creano tipicamente le proprie finestre personalizzate. Tuttavia, la maggior parte delle finestre utilizzate in un programma framework vengono create da una delle classi di finestre cornice derivate da CWnd fornite da MFC.
Classi di finestre cornice
CFrameWnd
Viene utilizzata per le finestre cornice SDI che circondano un singolo documento e la visualizzazione corrispondente. La finestra cornice è sia la finestra cornice principale per l'applicazione che la finestra cornice per il documento corrente.CMDIFrameWnd
Viene utilizzata come finestra cornice principale per 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 che viene visualizzata sul desktop.CMDIChildWnd
Viene utilizzata per i singoli documenti aperti in una finestra cornice principale MDI. Ogni documento e la visualizzazione corrispondente vengono incorniciati da una finestra cornice figlio MDI contenuta dalla finestra cornice principale MDI. Una finestra figlio MDI è molto simile a una finestra cornice usuale ma è contenuta in una finestra cornice MDI invece di trovarsi sul desktop. Tuttavia, la finestra figlio MDI è priva di una barra dei menu e quindi deve condividere la barra dei menu della finestra cornice MDI che la contiene.Per ulteriori informazioni, vedere Finestre cornice.
Altre classi di finestre derivate da CWnd
Oltre alle finestre cornice, molte altre categorie principali di finestre vengono derivate da CWnd:
Visualizzazioni
Le visualizzazioni vengono create utilizzando la classe CView (oppure una delle relative classi derivate) derivata da CWnd. Una visualizzazione viene associata 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 di una finestra cornice figlio MDI (o quella parte dell'area client non coperta da una barra degli strumenti e/o da una barra di stato).Finestre di dialogo
Le finestre di dialogo vengono create utilizzando la classe CDialog derivata da CWnd.Form
Le visualizzazioni basate su form sulle risorse modello di finestre di dialogo, come le finestre di dialogo, vengono create utilizzando le classi CFormView, CRecordView o CDaoRecordView.Controlli
Controlli come pulsanti, caselle di riepilogo e caselle combinate vengono create utilizzando altre classi derivate da CWnd. Vedere Argomenti di controllo.Barre di controllo
Finestre figlio che contengono controlli. Ne sono un esempio le barre degli strumenti e le barre di stato. Vedere Barre di controllo.
Gerarchia di classi di finestra
Vedere il grafico della gerarchia MFC nei Riferimenti alla libreria MFC. Le visualizzazioni vengono descritte nell'Architettura documento/visualizzazione. Le finestre di dialogo vengono descritte in Finestre di dialogo.
Creazione di classi di finestra personalizzate per uno scopo specifico
Oltre alle classi di finestre fornite dalla libreria di classi, potrebbe essere necessario disporre di finestre figlio per scopi specifici. Per creare una finestra con queste caratteristiche, creare una classe personalizzata che derivi da CWnd e renderla una finestra figlio di una cornice o una visualizzazione. Si tenga presente che il framework gestisce l'estensione dell'area client di una finestra cornice di documento. La maggior parte dell'area client viene gestita da una visualizzazione, ma altre finestre, come ad esempio barre di controllo o proprie finestre personalizzate, possono condividere lo spazio con la visualizzazione. Potrebbe essere necessario interagire con i meccanismi nelle classi CView e CControlBar per il posizionamento delle finestre figlio nell'area client di una finestra cornice.
Creazione finestre illustra la creazione di oggetti finestra e le finestre che li gestiscono.