L'aggancio e barre degli strumenti mobili
La libreria MFC supporta le barre degli strumenti ancorabili.Una barra degli strumenti ancorabile può essere collegata, o ancorata, a qualsiasi lato della finestra padre, oppure può essere rimosso, o essere eseguita float, in una finestra cornice piccola.In questo articolo viene illustrato come utilizzare le barre degli strumenti ancorabili nelle applicazioni.
Se si utilizza la procedura guidata per generare lo scheletro dell'applicazione, viene richiesto di scegliere se si desidera che le barre degli strumenti ancorabili.Per impostazione predefinita, la procedura guidata genera codice che esegue le tre azioni necessarie per inserire una barra degli strumenti ancorabile nell'applicazione:
Attivare l'ancoraggio in una finestra cornice.
Attivare l'ancoraggio per una barra degli strumenti.
Per ancorare la barra degli strumenti (alla finestra cornice).
Se uno di questi passaggi sono mancanti, l'applicazione verrà visualizzata una barra degli strumenti standard.Le ultime due operazioni devono essere eseguite per ciascuna barra degli strumenti ancorabile dell'applicazione.
Altri argomenti trattati in questo articolo sono:
Fare verrà visualizzata la barra degli strumenti
Dinamicamente ridimensionare la barra degli strumenti
Configurare percorsi del wrapping di una barra degli strumenti stile
Vedere a MFC in generale DOCKTOOL per gli esempi.
Attivare l'ancoraggio in una finestra cornice
Per ancori le barre degli strumenti a una finestra cornice, la finestra cornice (o destinazione) deve essere abilitata per consentire all'ancoraggio.Questa operazione viene eseguita utilizzando la funzione di CFrameWnd::EnableDocking , che accetta un parametro di DWORD ovvero un insieme di indicazione di bit di stile quale lato della finestra cornice ancoraggio.Se una barra degli strumenti sta per essere ancorato e vi sono più membri che potrebbero essere ancorati a, i lati indicati nel parametro passato a EnableDocking vengono utilizzati nell'ordine seguente: il bordo superiore, inferiore, sinistro, destro.Se si desidera poter ancorare le barre di controllo in qualsiasi punto, passare CBRS_ALIGN_ANY a EnableDocking.
Attivare l'ancoraggio per una barra degli strumenti
Dopo aver preparato la destinazione per ancorare, è necessario scrivere la barra degli strumenti (o origine) in modo simile.Chiamata CControlBar::EnableDocking per ogni barra degli strumenti che si desidera ancorare, specificando i lati di destinazione in cui la barra degli strumenti deve essere ancorata.Se nessuno dei lati indicati nella chiamata alla corrispondenza di CControlBar::EnableDocking i lati attivati per l'ancoraggio nella finestra cornice, la barra degli strumenti non possono essere ancorata a galleggieranno.Le barre degli strumenti mobili rimangono tali e non possono essere ancorate alla finestra cornice.
Se l'effetto desiderato è una barra degli strumenti in modo permanente di mobile, chiama EnableDocking con un parametro di 0.Successivamente chiamare CFrameWnd::FloatControlBar.La barra degli strumenti rimarrà mobile, in modo permanente impossibile di ancoraggio in qualsiasi percorso.
Per ancorare la barra degli strumenti
Il framework chiama CFrameWnd::DockControlBar quando l'utente tenta di eliminare la barra degli strumenti da un lato della finestra cornice che consente l'ancoraggio.
Inoltre, è possibile chiamare la funzione in qualsiasi momento per ancorare le barre di controllo alla finestra cornice.In genere viene eseguita durante l'inizializzazione.Più barre degli strumenti può essere ancorata a un lato particolare della finestra cornice.
Fare verrà visualizzata la barra degli strumenti
Rimozione di una barra degli strumenti ancorabile dalla finestra cornice viene chiamato fare verrà visualizzata la barra degli strumenti.Chiamata CFrameWnd::FloatControlBar per questo scopo.Specificare la barra degli strumenti di fare float, il punto in cui deve essere inserita e uno stile di allineamento che determina se la barra degli strumenti mobile è orizzontale o verticale.
Il framework chiama la funzione quando l'utente trascina una barra degli strumenti alla posizione ancorata e la inserisce nella posizione di ancoraggio non è abilitato.Ciò può essere qualsiasi punto all'interno o all'esterno della finestra cornice.Come con DockControlBar, è anche possibile chiamare questa funzione durante l'inizializzazione.
Implementazione MFC delle barre degli strumenti ancorabili non vengono illustrate alcune delle funzionalità estese disponibili in alcune applicazioni che supportano le barre degli strumenti ancorabili.Funzionalità quali barre degli strumenti personalizzabile non vengono specificate.
Dinamicamente ridimensionare la barra degli strumenti
A partire da Visual C++ versione 4,0, è possibile permetterlo agli utenti dell'applicazione ridimensionare dinamicamente le barre degli strumenti mobili.In genere, una barra degli strumenti dispone di una forma lunga e lineare, viene visualizzato orizzontalmente.È tuttavia possibile modificare la forma della barra degli strumenti l'orientamento e.Ad esempio, quando l'utente ancora una barra degli strumenti su uno dei lati verticali della finestra cornice, le modifiche di forma in un layout verticale.È inoltre possibile rimodellare la barra degli strumenti in un rettangolo con più righe di pulsanti.
È possibile:
Specificare il ridimensionamento dinamico come caratteristica della barra degli strumenti.
Specificare ha corretto il ridimensionamento come caratteristica della barra degli strumenti.
Per fornire questo supporto, esistono due nuovi stili della barra degli strumenti per l'utilizzo nelle chiamate alla funzione membro di CToolBar::Create .seguenti:
La barra di controlloCBRS_SIZE_DYNAMIC è dinamica.
La barra di controlloCBRS_SIZE_FIXED è fissa.
Lo stile dinamico di dimensione dell'utente di ridimensionare la barra degli strumenti mentre è mobile, ma non quando è ancorato.La barra degli strumenti “esegue il wrapping di l„ dove necessario deformare come i trascinamento dei bordi.
Lo stile corretto dimensione conserva gli stati di una barra degli strumenti, correggere la posizione dei pulsanti in ogni colonna.L'utente dell'applicazione non può modificare la forma della barra degli strumenti.Esegue il wrapping della barra degli strumenti sui punti definiti, quali le posizioni dei separatori tra i pulsanti.Gestisce questa forma se la barra degli strumenti è ancorata o mobile.L'effetto è una tavolozza fissa con più colonne di pulsanti.
È inoltre possibile utilizzare CToolBar::GetButtonStyle per restituire uno stato e uno stile per i pulsanti sulle barre degli strumenti.Lo stile di un pulsante determina il modo in cui viene visualizzato il pulsante e come rispondere agli input dell'utente; lo stato viene indicato se il pulsante è in uno stato di cui è stato eseguito il wrapping.
Configurare percorsi del wrapping di una barra degli strumenti Stile
Per una barra degli strumenti con lo stile corretto dimensioni, gli indici definire il pulsante della barra degli strumenti a cui la barra degli strumenti verrà eseguito il wrapping.Nel codice seguente viene illustrato come eseguire questa operazione in override di OnCreate della finestra cornice principale:
// Get the style of the first button separator
UINT nStyle = m_wndToolBar.GetButtonStyle(3);
// Augment the state for wrapping
nStyle |= TBBS_WRAPPED;
m_wndToolBar.SetButtonStyle(3, nStyle);
// Do the same for other wrap locations ...
// Set the bar style to size fixed
m_wndToolBar.SetBarStyle(m_wndToolBar.GetBarStyle() |
CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_FIXED);
// Call docking/floating functions as needed ...
Mostra generali di DOCKTOOL dell'esempio MFC come utilizzare le funzioni membro delle classi CControlBar e CToolBar per gestire layout dinamico di una barra degli strumenti.Vedere il file EDITBAR.CPP in DOCKTOOL.