Plovoucí panely nástrojů a Docking
Knihovny Microsoft Foundation Class podporuje dokovací panely nástrojů.Dokovací nástrojů může být připojen nebo ukotven k jakékoli straně nadřazené okno, nebo může být odpojen, nebo plovoucí v okně mini-frame.Tento článek vysvětluje způsob použití dokovací panely nástrojů v aplikacích.
Pokud pomocí Průvodce aplikací generovat kostra aplikace, budete dotázáni, zvolit, zda chcete dokovací panely nástrojů.Ve výchozím nastavení Průvodce aplikace vygeneruje kód, který provede nezbytné umístit dokovací nástrojů v aplikaci tři akce:
Povolit uchycení v rámci okna.
Povolit ukotvení panelu nástrojů pro.
Ukotvení panelu nástrojů (do okna rámeček).
Pokud chybí některé kroky, aplikace zobrazí panel nástrojů Standardní.Poslední dva kroky je třeba provést pro každou dokovací 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 nástrojů styl
Zobrazit obecné MFC vzorku DOCKTOOL příklady.
Povolení v rámci okna ukotvení
Chcete-li panely nástrojů ukotvit okno rámeček, rámeček okna (nebo cíl) musí být povolena umožní dokování.To se provádí pomocí CFrameWnd::EnableDocking funkci, která má jednu DWORD parametr, který je sada stylů bity označující, které straně rámeček okna přijímá docking.Pokud panel nástrojů je ukotvit a jsou více stran, které by mohly ukotveno, strany uvedené v parametru předána EnableDocking jsou použity v následujícím pořadí: nahoře, dole, vlevo, vpravo.Pokud chcete mít možnost ukotvit Ovládací panely, kdekoli, průchod CBRS_ALIGN_ANY na EnableDocking.
Povolení Docking pro panel nástrojů
Po skončení přípravy cíl pro docking, je třeba připravit nástrojů (nebo zdroj) podobným způsobem.Volání CControlBar::EnableDocking pro každý panel nástrojů chcete ukotvit určení cíle strany měly ukotvení panelu nástrojů.Pokud žádné strany zadané ve volání CControlBar::EnableDocking odpovídají stranách povolena pro dokování v rámci okna, nelze panel nástrojů ukotvit – bude panel plovoucí.Jakmile bylo uvolněno, zůstane plovoucí panel nástrojů nelze Ukotvit okno snímku.
Pokud chcete efekt je trvale plovoucí panel nástrojů, volání EnableDocking s parametrem 0.Potom voláním CFrameWnd::FloatControlBar.Panelu nástrojů zůstává plovoucí, trvale nepodařilo ukotvit kdekoli.
Ukotvení panelu nástrojů
Volání rámci CFrameWnd::DockControlBar pokusy uživatele o přetažení panelu nástrojů na straně rámeček okna, která umožní dokování.
Tuto funkci lze volat navíc kdykoli ukotvit rámeček okna Ovládací panely.To je obvykle během inicializace.Více nástrojů můžete ukotvit určité straně okna rámce.
Plovoucí panel nástrojů
Odpojení dokovací nástrojů z okna rámce, se nazývá plovoucí panel nástrojů.Volání CFrameWnd::FloatControlBar provést.Určete být plovoucím panelu nástrojů, bod, kde by mělo být umístěno a zarovnání styl, který určuje, zda je plovoucí panel nástrojů vodorovné nebo svislé.
Rámci volání této funkce, když uživatel přetáhne mimo místa ukotvení panelu nástrojů klesne na místo, kde docking není povoleno.Může to být kdekoliv uvnitř nebo mimo rámeček okna.Stejně jako DockControlBar, tuto funkci můžete také volat během inicializace.
Implementace MFC dokovací panelů neposkytuje některé rozšířené funkce některé aplikace, které podporují dokovací panely nástrojů.Nejsou poskytovány funkce, jako například upravitelných panelů nástrojů.
Dynamicky změnu velikosti panelu nástrojů
Od Visual C++ verze 4.0 může umožníte uživatelům aplikace dynamicky měnit velikost plovoucí panely nástrojů.Na panelu nástrojů má obvykle 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é strany okna rámeček, tvar změní na svislé rozložení.Je také možné tvar do obdélníku s více řádky tlačítka panelu nástrojů.
Můžete:
Určete dynamické třídění jako charakteristiku nástrojů.
Charakteristika nástrojů zadejte pevné velikosti.
Tuto podporu poskytnout, jsou dva nové styly nástrojů pro použití při volání CToolBar::Create členské funkce.Jsou:
CBRS_SIZE_DYNAMIC je dynamické ovládací panel.
CBRS_SIZE_FIXED panel ovládacího prvku je pevná.
Styl dynamickou velikost umožňuje změnit velikost panelu nástrojů, dokud je plovoucí, ale není dokovacím uživatele.Panel nástrojů "zabalí" v případě potřeby změňte tvar jako uživatel přetáhne jeho okraje.
Zachová velikost stanovena styl obtékání států nástrojů stanovení polohy tlačítek v každém sloupci.Uživatel aplikace nelze změnit tvar na panelu nástrojů.Panel nástrojů zalomí na určených místech, jako je například umístění oddělovače mezi tlačítky.Zda je plovoucí nebo ukotvený panel nástrojů udržuje tento obrazec.Efekt je pevné palety s více sloupcích tlačítek.
Můžete také použít CToolBar::GetButtonStyle vrátit stav a styl tlačítek na panelech nástrojů.Na tlačítko Styl určuje vzhled tlačítka a jak reagovat na vstup uživatele; stát sděluje, zda je tlačítko zalomený státu.
Nastavení umístění nástrojů styl obtékání
Panel nástrojů s pevnou stylu velikost jmenovat nástrojů tlačítko indexy, ve kterých bude obtékat panelu nástrojů.Následující kód ukazuje, jak to provést v okně hlavní rámec 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 ...
Obecné MFC vzorku DOCKTOOL ukazuje, jak použít funkce členů tříd CControlBar a CToolBar Správa dynamických rozložení panelu nástrojů.Naleznete v souboru EDITBAR.CPP v DOCKTOOL.