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.
Questo documento descrive gli elementi dell'interfaccia introdotti in Visual Studio 2008 SP1 e descrive anche le differenze con la versione precedente della libreria.
La figura seguente mostra un'applicazione compilata usando i nuovi elementi dell'interfaccia.
Ancoraggio delle finestre
La funzionalità di ancoraggio delle finestre è simile all'ancoraggio della finestra usato dall'interfaccia utente grafica di Visual Studio.
Le barre di controllo sono ora pannelli
Le barre di controllo sono ora note come riquadri e sono derivate dalla classe CBasePane. Nelle versioni precedenti di MFC la classe base delle barre di controllo era CControlBar
.
La finestra cornice principale dell'applicazione è in genere rappresentata dalla classe CFrameWndEx o dalla classe CMDIFrameWndEx. Il frame principale è denominato sito di ancoraggio. I pannelli possono avere uno dei tre tipi di elementi padre: un'area di ancoraggio, una barra di ancoraggio o una finestra a mini-frame.
Esistono due tipi di riquadri: non ridimensionabili e ridimensionabili. I riquadri ridimensionabili, ad esempio barre di stato e barre degli strumenti, possono essere ridimensionati usando splitter o dispositivi di scorrimento. I riquadri ridimensionabili possono formare contenitori (un riquadro può essere ancorato a un altro riquadro, creando uno splitter tra di essi). Tuttavia, i riquadri ridimensionabili non possono essere collegati (ancorati) alle barre di ancoraggio.
Se l'applicazione usa riquadri non ridimensionabili, derivarli dalla classe CPane. Se l'applicazione usa riquadri ridimensionabili, derivarli dalla classe CDockablePane
Sito di attracco
Il sito dock (o finestra cornice principale) possiede tutti i riquadri e le finestre mini-frame in un'applicazione. Il sito dock contiene un CDockingManager come membro. Questo membro mantiene un elenco di tutti i pannelli associati all'area di ancoraggio. L'elenco viene ordinato in modo che i riquadri creati ai bordi esterni del sito di ancoraggio siano posizionati all'inizio dell'elenco. Quando il framework ridisegna il sito di ancoraggio, esegue un ciclo su questo elenco e modifica il layout di ogni riquadro in modo da includere il rettangolo di delimitazione corrente del sito di ancoraggio. È possibile chiamare AdjustDockingLayout
o RecalcLayout
quando è necessario regolare il layout di ancoraggio e il framework reindirizza questa chiamata al gestore di ancoraggio.
Barre di attracco
Ogni finestra cornice principale può posizionare le barre di ancoraggio lungo i bordi. Una barra di ancoraggio è un riquadro che appartiene a una Classe CDockSite. Le barre di ancoraggio possono accettare oggetti derivati da CPane, ad esempio barre degli strumenti. Per creare barre di ancoraggio quando viene inizializzata la finestra cornice principale, chiamare EnableDocking
. Per abilitare la funzione di nascondere automaticamente le barre, chiamare EnableAutoHideBars
.
EnableAutoHideBars
crea oggetti CAutoHideDockSite e li posiziona accanto a ogni barra di ancoraggio.
Ogni barra di ancoraggio è divisa in righe di ancoraggio. Le righe di ancoraggio sono rappresentate dalla classe CDockingPanesRow. Ogni riga di ancoraggio contiene un elenco di barre degli strumenti. Se un utente ancora una barra degli strumenti o sposta la barra degli strumenti da una riga a un'altra all'interno della stessa barra di ancoraggio, il framework crea una nuova riga e ridimensiona la barra di ancoraggio di conseguenza oppure posiziona la barra degli strumenti su una riga esistente.
Finestre con telaio ridotto
Un riquadro mobile si trova in una finestra con mini cornice. Le finestre mini-frame sono rappresentate da due classi: classe CMDITabInfo (che può contenere un solo riquadro) e classe CMultiPaneFrameWnd (che può contenere più riquadri). Per rendere flottante un riquadro nel codice, chiamare CBasePane::FloatPane. Dopo che un riquadro viene flottato, il framework crea automaticamente una mini-finestra, che diventa l'elemento padre del riquadro flottante. Quando il riquadro mobile si aggancia, il framework reimposta il relativo elemento padre e il riquadro mobile diventa una barra di ancoraggio (per le barre degli strumenti) o un'area di ancoraggio (per riquadri ridimensionabili).
Divisori di pannelli
I divisori di riquadri (denominati anche dispositivi di scorrimento o splitter) sono rappresentati dalla classe CPaneDivider. Quando un utente aggancia un riquadro, il framework crea divisori dei pannelli, indipendentemente dal fatto che il riquadro sia ancorato nel sito di aggancio o in un altro riquadro. Quando un riquadro è ancorato al sito di ancoraggio, il divisore del riquadro viene chiamato divisore del riquadro predefinito. Il divisore del riquadro predefinito è responsabile del layout di tutti i riquadri di ancoraggio nel sito di ancoraggio. Il gestore del dock mantiene un elenco di divisori di riquadri predefiniti e un elenco di riquadri. I gestori dock sono responsabili del layout di tutti i riquadri di ancoraggio.
Contenitori
Tutti i riquadri ridimensionabili, quando ancorati tra loro, vengono mantenuti nei contenitori. I contenitori sono rappresentati dalla classe CPaneContainer. Ogni contenitore include puntatori al riquadro sinistro, al riquadro destro, al sottocontenitore sinistro, al sottocontenitore destro e al separatore tra le parti sinistra e destra.
Sinistra e destra non fanno riferimento ai lati fisici, ma identificano piuttosto i rami di una struttura ad albero. In questo modo è possibile creare un albero di riquadri e splitter e quindi ottenere layout complessi di riquadri che possono essere ridimensionati insieme. La CPaneContainer
classe mantiene l'albero dei contenitori e mantiene anche due elenchi di riquadri e dispositivi di scorrimento che risiedono in questo albero. I gestori dei contenitori di pannelli sono in genere incorporati in dispositivi di scorrimento predefiniti e finestre a mini-frame che contengono più pannelli.
Nascondi automaticamente barre di controllo
Per impostazione predefinita, ciascuno CDockablePane
supporta la funzionalità di nascondimento automatico. Quando un utente fa clic sul pulsante del pin nella didascalia di CDockablePane
, il framework passa il pannello in modalità di nascondimento automatico. Per gestire il clic, il framework crea una classe CMFCAutoHideBar e una classe CMFCAutoHideButton associata all'oggetto CMFCAutoHideBar
. Il framework inserisce il nuovo CMFCAutoHideBar
nel CAutoHideDockSite. Il framework collega anche l'oggetto CMFCAutoHideButton
alla barra degli strumenti. La classe CDockingManager gestisce .CDockablePane
Barre di controllo a schede e barre di Outlook
La classe CMFCBaseTabCtrl implementa la funzionalità di base di una finestra a schede con schede scollegabili. Per usare un CMFCBaseTabCtrl
oggetto , inizializzare una classe CBaseTabbedPane nell'applicazione.
CBaseTabbedPane
è derivato da CDockablePane
e mantiene un puntatore a un CMFCBaseTabCtrl
oggetto .
CBaseTabbedPane
Consente agli utenti di ancorare e ridimensionare le barre di controllo a schede. Usare CDockablePane::AttachToTabWnd per creare dinamicamente barre di controllo ancorate e a schede.
Il controllo barra di Outlook si basa anche sulle barre a schede. La classe CMFCOutlookBar è derivata da CBaseTabbedPane
. Per altre informazioni su come usare la barra di Outlook, vedere Classe CMFCOutlookBar.