Sdílet prostřednictvím


Ukotvitelné a plovoucí panely nástrojů

Knihovna tříd Microsoft Foundation podporuje panely nástrojů ukotvitelný.Ukotvitelný panel nástrojů připojen, nebo ukotvený k libovolné straně nadřazené okno, nebo může být odpojen, nebo plovoucí ve vlastním okně zkrácené snímku.Tento článek vysvětluje způsob použití panelů nástrojů ukotvitelný ve vašich aplikacích.

Vygenerování kostry aplikace pomocí Průvodce aplikací, budete vyzváni k výběru, zda chcete panely nástrojů ukotvitelný.Průvodce aplikací ve výchozím nastavení generuje kód, který provede nutné umístit Ukotvitelný panel nástrojů v aplikaci tři akce:

  • Povolit ukotvení v rámci okna.

  • Povolit uchycení pro panel nástrojů.

  • Ukotvit panel nástrojů (okno).

Pokud chybí některý z těchto postupů, aplikace zobrazí panelu nástrojů Standardní.Poslední dva kroky je nutné provést pro každý Ukotvitelný panel nástrojů v aplikaci.

Další témata v tomto článku zahrnují:

  • Plovoucí panel nástrojů

  • Dynamicky změnu velikosti panelu nástrojů

  • Nastavení zalamování řádků pozic pro pevné stylu nástrojů

Naleznete v ukázce knihovny MFC Obecné DOCKTOOL příklady.

Povolení ukotvení v rámci okna

Na panely nástrojů ukotvit okno rámce, musí být povoleno rámeček okna (nebo cílové) která vám umožní dokování.To se provádí pomocí CFrameWnd::EnableDocking funkce, která má jednu DWORD parametr, který je sada styl bity určující, která strana okna rámce přijímá docking.Pokud panel nástrojů je ukotvit a jsou více stran, které může být ukotveno stranách uvedených v parametru předána EnableDocking jsou použity v následujícím pořadí: nahoru, dolů, vlevo, vpravo.Pokud chcete, aby bylo možné umístit ovládací panely kamkoli, průchod CBRS_ALIGN_ANY k EnableDocking.

Povolení Docking pro panel nástrojů

Po skončení přípravy cíl pro ukotvení, je podobným způsobem připravit nástrojů (nebo zdroj).Volání CControlBar::EnableDocking pro každý panel nástrojů, který chcete ukotvit, určení cíle strany na panelu nástrojů je ukotvit.Pokud žádná ze stran podle volání CControlBar::EnableDocking odpovídají stran povolena pro ukotvení v rámci okna, nelze ukotvit panel nástrojů, bude panel plovoucí.Jakmile bylo uvolněno, zůstane plovoucí panel nástrojů nelze ukotvit okna rámce.

Pokud chcete efekt je trvale plovoucí panel nástrojů, volání EnableDocking s parametrem 0.Volejte CFrameWnd::FloatControlBar.Panelu nástrojů zůstává trvale nelze ukotvit kdekoli, plovoucí.

Ukotvení panelu nástrojů

Architektura volá CFrameWnd::DockControlBar když se uživatel pokusí přetáhněte panel nástrojů na straně okno rámce, který umožňuje uchycení.

Kromě toho můžete volat tuto funkci kdykoli chcete ukotvit do rámečku okna Ovládací panely.To se obvykle provádí během inicializace.Více než jeden panel nástrojů lze ukotvit k okraji okna rámce.

Plovoucí panel nástrojů

Odpojení Ukotvitelný panel nástrojů v okně rámce, se nazývá plovoucí panel nástrojů.Volání CFrameWnd::FloatControlBar k tomu.Určete být plovoucím panelu nástrojů, místo, kde by měla proběhnout a zarovnání styl, který určuje, zda je plovoucí panel nástrojů vodorovně nebo svisle.

Rámci volá tuto funkci, když uživatel přetáhne mimo místa ukotvení panelu nástrojů a klesne na místě, kde není povolen pro docking.To může být kdekoliv uvnitř nebo vně okna rámce.Stejně jako u DockControlBar, tato funkce můžete také volat během inicializace.

Implementace MFC panely nástrojů ukotvitelný neposkytuje některé rozšířené funkce, které jsou nalezeny v některých aplikacích, které podporují panely nástrojů ukotvitelný.Nejsou k dispozici funkce, jako například upravitelných panelů nástrojů.

Dynamicky změnu velikosti panelu nástrojů

Od Visual C++ verze 4.0 můžete umožníte uživatelům aplikace dynamicky změnit velikost plovoucích panelů nástrojů.Panel nástrojů obvykle má dlouhý, lineární obrazce zobrazeny vodorovně.Můžete však změnit orientaci panelu nástrojů a jeho tvar.Například když uživatel ukotvené nástrojů proti jedné svislé okraje okna rámce, obrazce se změní na svislé rozložení.Je také možné tvaru do obdélníku s několika řadami tlačítek panelu nástrojů.

Můžete:

  • Určete dynamické třídění jako charakteristiku nástrojů.

  • Zadejte pevné velikosti jako charakteristiku nástrojů.

Podporovat, jsou dvě nové styly pro použití při volání na panelu nástrojů CToolBar::Create členské funkce.Možnosti jsou následující:

  • CBRS_SIZE_DYNAMIC ovládací panel je dynamická.

  • CBRS_SIZE_FIXED ovládací panel je pevná.

Dynamický styl velikost umožňuje uživateli změnit velikost panelu nástrojů, dokud je plovoucí, ale ne v době, kdy je ukotven.Panel nástrojů "zabalí" v případě potřeby změnit tvar jako uživatel přetáhne jeho okraje.

Velikost stanovena stylu zachová státy obtékání panelu nástrojů, stanovení pozice tlačítka v každém sloupci.Aplikace uživatel nemůže změnit tvar na panelu nástrojů.Panel nástrojů je zalamoval na určených místech, jako je například umístění oddělovače mezi tlačítky.Zda je ukotvený nebo plovoucí panel nástrojů udržuje tento obrazec.Efekt je dlouhodobý paletu s více sloupci tlačítek.

Můžete také použít CToolBar::GetButtonStyle vrátit státu a styl tlačítek na panelech nástrojů.Na tlačítko Styl určuje vzhled tlačítka a jak reagovat na uživatelský vstup; stavu určuje, zda je tlačítko v sbaleného stavu.

Nastavení zalamování řádků pozic pro pevné stylu nástrojů

Panel nástrojů s pevnou styl velikost určete nástrojů tlačítko indexy, ve kterých se zalomí panelu nástrojů.Následující kód ukazuje, jak to provést v okno rámce, hlavní OnCreate přepsat:

// 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 ...

Vzorek knihovny MFC Obecné DOCKTOOL ukazuje, jak použít členské funkce tříd CControlBar a CToolBar spravovat dynamické rozložení panelu nástrojů.Naleznete v souboru EDITBAR.CPP v DOCKTOOL.

O čem chcete vědět více?

Viz také

Koncepty

Implementace panelu nástrojů v prostředí MFC