Prvky rozhraní

Poznámka:

Knihovna MFC (Microsoft Foundation Classes) se nadále podporuje. Už ale nepřidáme funkce ani aktualizujeme dokumentaci.

Tento dokument popisuje prvky rozhraní, které byly zavedeny v sadě Visual Studio 2008 SP1, a popisuje také rozdíly se starší verzí knihovny.

Následující obrázek znázorňuje aplikaci vytvořenou pomocí nových prvků rozhraní.

Ukázková aplikace MFC Feature Pack

Ukotvení oken

Funkce ukotvení oken se podobá ukotvení okna, které používá grafické uživatelské rozhraní sady Visual Studio.

Ovládací panely jsou nyní podokna

Řídicí pruhy jsou nyní označovány jako panely a jsou odvozeny z třídy CBasePane. V dřívějších verzích MFC byla CControlBarzákladní třída řídicích pruhů .

Okno hlavního rámce aplikace je obvykle reprezentováno CFrameWndEx Třída nebo CMDIFrameWndEx Třída. Hlavní rám se nazývá dokovací místo. Panely mohou mít jeden ze tří typů nadřazených prvků: dockovací místo, dokovací panel nebo okno s mini rámem.

Existují dva typy podoken: neměnitelné a měnitelné. Změnu velikosti panelů, jako jsou stavové pruhy a panely nástrojů, lze provést pomocí rozdělovačů nebo posuvníků. Podokna s možností změny velikosti mohou vytvářet kontejnery (lze jedno podokno ukotvit k jinému, je možné vytvořit mezi nimi rozdělovač). Nelze však připojit přizpůsobitelné příčky k ukotvitelným pruhům.

Pokud vaše aplikace používá nešiřitelné podokna, odvozujte je z třídy CPane. Pokud vaše aplikace používá podokna s možností změny velikosti, odvoďte je z CDockablePane Class

Přístavní místo

Web docku (nebo okno hlavního rámce) vlastní všechna podokna a minirámeček okna v aplikaci. Web docku obsahuje člen CDockingManager . Tento člen udržuje seznam všech panelů, které patří k docking stanici. Seznam je seřazen tak, aby panely vytvořené na vnějších okrajích dokovacího místa byly umístěny na začátku seznamu. Když architektura překreslí web docku, přemění tento seznam a upraví rozložení každého podokna tak, aby zahrnovalo aktuální ohraničující obdélník webu docku. Můžete volat AdjustDockingLayout nebo RecalcLayout když budete muset upravit dokovací rozložení a architektura přesměruje toto volání na správce dokování.

Dokovací panely

Každé okno hlavního rámečku může umístit úchytné lišty podél svých ohraničení. Dokovací panel je panel, který patří do třídy CDockSite. Ukotvitelný pruhy mohou přijímat objekty odvozené z CPane, jako jsou panely nástrojů. Chcete-li vytvořit dokovací pruhy, když je inicializováno okno hlavního rámce, zavolejte EnableDocking. Chcete-li povolit automatické skrytí pruhů, zavolejte EnableAutoHideBars. EnableAutoHideBars vytváří objekty CAutoHideDockSite a umísťuje je vedle každého dokovacího panelu.

Každý docking bar je rozdělený na řady doků. Řádky docku jsou reprezentovány třídou CDockingPanesRow. Každý řádek doku obsahuje seznam panelů nástrojů. Pokud uživatel ukotví panel nástrojů nebo jej přesune z jednoho řádku do druhého na stejném panelu doku, systém buďto vytvoří nový řádek a odpovídajícím způsobem změní velikost panelu doku, nebo umístí panel na existující řádek.

Okna s mini rámečkem

Plovoucí podokno se nachází v minirámečkovém okně. Okna s mini rámečkem jsou reprezentována dvěma třídami: CMDITabInfo – třída (která může obsahovat pouze jedno podokno) a CMultiPaneFrameWnd – třída (která může obsahovat několik podoken). Pokud chcete v kódu vytvořit plovoucí podokno, zavolejte CBasePane::FloatPane. Po uvedení panelu do plovoucího stavu rámec automaticky vytvoří okno minirámu a toto okno minirámu se stane rodičem plovoucího panelu. Když se plovoucí podokno ukotví, rámec resetuje jeho rodičovský prvek a plovoucí podokno se stane dokovacím panelem (pro panely nástrojů) nebo dokovacím místem (pro změnitelné podokna).

Rozdělovače panelů

Oddělovače podokna (také nazývané posuvníky nebo dělítka) jsou reprezentovány třídou CPaneDivider Class. Když uživatel ukotví podokno, systém vytvoří rozdělovače podokna bez ohledu na to, jestli je podokno ukotveno v doku nebo u jiného podokna. Když se podokno ukotví na ukotvovací místo, rozdělovač podokna se nazývá výchozí oddělovač podokna. Výchozí rozdělovač panelu je zodpovědný za rozložení všech dokovacích panelů ve stanici doku. Správce docku udržuje seznam výchozích rozdělovačů podokna a seznam podoken. Manažeři doků jsou zodpovědní za rozložení všech dokovacích oken.

Containers

Pokud jsou podokna s možností změny velikosti ukotvena k sobě navzájem, udržují se v kontejnerech. Kontejnery jsou reprezentovány třídou CPaneContainer. Každý kontejner má ukazatele na levé podokno, pravé podokno, levý dílčí kontejner, pravý dílčí kontejner a dělicí prvek mezi levými a pravými částmi. (Vlevo a vpravo neodkazují na fyzické strany, ale spíše identifikují větve struktury stromu.) Tímto způsobem můžeme vytvořit strom skládající se z podoken a rozdělovačů a dosáhnout tak složitých rozložení podoken, které lze upravit společně. Třída CPaneContainer udržuje strom kontejnerů. Udržuje také dva seznamy podoken a posuvníků, které se nacházejí v tomto stromu. Správci kontejnerů pro podokna jsou obvykle integrováni do výchozích posuvníků a oken s minirámem, která nesou více panelů.

Automatické skrytí ovládacích panelů

Ve výchozím nastavení každá CDockablePane podporuje funkci automatického skrytí. Když uživatel klikne na tlačítko připnout na titulek CDockablePane, rozhraní přepne podokno do režimu automatického skrytí. Pro zpracování kliknutí framework vytvoří CMFCAutoHideBar Class a CMFCAutoHideButton Class přidruženou k objektu CMFCAutoHideBar. Architektura umístí nový CMFCAutoHideBar na CAutoHideDockSite. Rámec také připojí CMFCAutoHideButton k panelu nástrojů. Třída CDockingManager udržuje CDockablePane.

Záložkové řídicí panely a nástrojové panely Outlooku

Třída CMFCBaseTabCtrl implementuje základní funkcionalitu okna s kartami, které lze odpojovat. Chcete-li použít CMFCBaseTabCtrl objekt, inicializujte třídu CBaseTabbedPane ve vaší aplikaci. CBaseTabbedPane je odvozen z CDockablePane objektu a udržuje ukazatel na CMFCBaseTabCtrl objekt. CBaseTabbedPane umožňuje uživatelům ukotvit a změnit velikost ovládacích panelů. Pomocí CDockablePane::AttachToTabWnd můžete dynamicky vytvářet ovládací panely, které jsou ukotveny a se záložkami.

Ovládací prvek Panel Outlooku je také založený na záložkových panelech. Třída CMFCOutlookBar je odvozena z CBaseTabbedPane. Další informace o používání panelu Aplikace Outlook naleznete v tématu CMFCOutlookBar – třída.

Viz také

Koncepty