Condividi tramite


Ancoraggio e barre degli strumenti mobili

Le barre degli strumenti ancorabili di supportare della libreria MFC. Una barra degli strumenti ancorabile può essere collegata, o ancorata, a qualsiasi lato della finestra padre, oppure può essere rimosso, o essere eseguita mobile, in una finestra cornice piccola. In questo articolo viene illustrato come utilizzare le barre degli strumenti ancorabili nelle applicazioni.

Se si utilizza la creazione guidata applicazione per generare lo scheletro dell'applicazione, viene chiesto di scegliere se si desidera che le barre degli strumenti ancorabili. Per impostazione predefinita, la creazione guidata applicazione genera codice che esegue le tre operazioni necessarie per inserire una barra degli strumenti ancorabile dell'applicazione:

  • Attivare l'ancoraggio in una finestra cornice.

  • Attivare l'ancoraggio per una barra degli strumenti.

  • Ancorare la barra degli strumenti (alla finestra cornice).

Se uno di questi passaggi 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:

  • Rendere mobile la barra degli strumenti

  • Ridimensionamento dinamico della barra degli strumenti

  • Impostare le posizioni del wrapping di una barra degli strumenti stile

Vedere a MFC l'esempio generale DOCKTOOL per esempi.

Attivare l'ancoraggio in una finestra cornice

Per ancorare 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 selezione di bit di stile quale lato della finestra cornice ancoraggio. Se una barra degli strumenti sta per essere ancorato e esistono più lati che potrebbero essere ancorata a, i lati visualizzati nel parametro passato a EnableDocking vengono utilizzati nell'ordine seguente: top, bottom, left, right. Se si desidera poter ancorare le barre di controllo in qualsiasi punto, passare CBRS_ALIGN_ANY a EnableDocking.

Abilitare ancoraggio di una barra degli strumenti

Dopo aver preparato la destinazione per ancorare, è necessario preparare la barra degli strumenti (o origine) in modo simile. Chiamata CControlBar::EnableDocking per ciascuna 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 specificati nella chiamata alla corrispondenza di CControlBar::EnableDocking i lati abilitati per ancorare la finestra cornice, la barra degli strumenti non possono essere - 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 il parametro 0. Chiamare quindi CFrameWnd::FloatControlBar. La barra degli strumenti mobile, rimane in modo permanente impossibile di ancoraggio in qualsiasi posizione.

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 particolare lato della finestra cornice.

Rendere mobile la barra degli strumenti

Rimozione di una barra degli strumenti ancorabile dalla finestra cornice viene chiamato rendere mobile la barra degli strumenti. Chiamata CFrameWnd::FloatControlBar a tale scopo. Specificare la barra degli strumenti da rendere mobile, 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 questa funzione viene chiamata quando un utente trascina una barra degli strumenti alla posizione ancorata e rilasciarlo nella posizione di ancoraggio non è abilitato. Può trattarsi di qualsiasi punto all'interno della finestra cornice. Come con DockControlBar, è anche possibile chiamare questa funzione durante l'inizializzazione.

L'implementazione di MFC 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 concesse.

Ridimensionamento dinamico della 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 e l'orientamento. Ad esempio, quando l'utente comunque una barra degli strumenti su uno dei lati verticali della finestra cornice, le modifiche 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 ridimensionare la barra degli strumenti mentre è mobile, ma non mentre è ancorato. La barra degli strumenti "esegue il wrapping di" dove necessario deformare quali l'utente trascina i suoi limiti.

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. I wrapping della barra degli strumenti i 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 come il pulsante viene visualizzato e come rispondere all'utente; lo stato indica se il pulsante è in uno stato di cui è stato eseguito il wrapping.

Impostare le posizioni del wrapping di una barra degli strumenti stile

Per una barra degli strumenti con lo stile corretto dimensioni, gli indici designare il pulsante della barra degli strumenti a cui la barra degli strumenti verrà eseguito il wrapping. Nel codice seguente viene illustrato come procedere 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 l'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.

Scegliere l'argomento su cui visualizzare maggiori informazioni

Vedere anche

Concetti

Implementazione della barra degli strumenti MFC