Sdílet prostřednictvím


CControlBar – třída

Základní třída pro třídy control-bar CStatusBar, CToolBar, CDialogBar, CReBar a COleResizeBar.

Syntaxe

class CControlBar : public CWnd

Členové

Chráněné konstruktory

Název Popis
CControlBar::CControlBar CControlBar Vytvoří objekt.

Veřejné metody

Název Popis
CControlBar::CalcDynamicLayout Vrátí velikost dynamického řídicího panelu jako objekt CSize .
CControlBar::CalcFixedLayout Vrátí velikost ovládacího panelu jako objekt CSize .
CControlBar::CalcInsideRect Vrátí aktuální rozměry oblasti řídicího pruhu; včetně hranic.
CControlBar::D oPaint Vykreslí ohraničení a úchyt ovládacího panelu.
CControlBar::D rawBorders Vykreslí ohraničení řídicího panelu.
CControlBar::D rawGripper Vykreslí úchyt ovládacího panelu.
CControlBar::EnableDocking Umožňuje ukotvit nebo plovoucí ovládací panel.
CControlBar::GetBarStyle Načte nastavení stylu řídicího panelu.
CControlBar::GetBorders Načte hodnoty ohraničení řídicího panelu.
CControlBar::GetCount Vrátí počet prvků bez HWND v ovládacím panelu.
CControlBar::GetDockingFrame Vrátí ukazatel na rámec, na který je ukotven ovládací panel.
CControlBar::IsFloating Vrátí nenulovou hodnotu, pokud je daný řídicí panel plovoucí řídicí panel.
CControlBar::OnUpdateCmdUI Volá obslužné rutiny uživatelského rozhraní příkazů.
CControlBar::SetBarStyle Upraví nastavení stylu ovládacího panelu.
CControlBar::SetBorders Nastaví hodnoty ohraničení řídicího panelu.
CControlBar::SetInPlaceOwner Změní místního vlastníka řídicího panelu.

Veřejné datové členy

Název Popis
CControlBar::m_bAutoDelete Pokud nenízero, CControlBar objekt se odstraní při zničení řídicího panelu Windows.
CControlBar::m_pInPlaceOwner Místní vlastník řídicího panelu.

Poznámky

Ovládací panel je okno, které je obvykle zarovnané doleva nebo vpravo od okna rámečku. Může obsahovat podřízené položky, které jsou buď ovládací prvky založené na HWND, což jsou okna, která generují zprávy systému Windows a reagují na ně, nebo položky, které nejsou založené na HWND, které nejsou windows a jsou spravovány kódem aplikace nebo kódem architektury. Seznamy a ovládací prvky pro úpravy jsou příklady ovládacích prvků založených na HWND; Podokna stavového řádku a rastrová tlačítka jsou příklady ovládacích prvků založených na HWND.

Okna řídicího panelu jsou obvykle podřízená okna nadřazeného okna rámce a obvykle jsou na stejné úrovni jako klientské zobrazení nebo klient MDI okna rámce. Objekt CControlBar používá informace o obdélníku klienta nadřazeného okna k umístění samotného objektu. Potom informuje nadřazené okno o tom, kolik místa zůstane nepřidělené v klientské oblasti nadřazeného okna.

Další informace najdete tady CControlBar:

Hierarchie dědičnosti

Objekt CObject

CCmdTarget

CWnd

CControlBar

Požadavky

Hlavička: afxext.h

CControlBar::CalcDynamicLayout

Architektura volá tuto členovou funkci k výpočtu dimenzí dynamického panelu nástrojů.

virtual CSize CalcDynamicLayout(
    int nLength,
    DWORD nMode);

Parametry

nLength
Požadovaný rozměr řídicího pruhu, vodorovného nebo svislého, v závislosti na dwMode.

nMode
Následující předdefinované příznaky slouží k určení výšky a šířky dynamického řídicího panelu. Pomocí bitové operátoru OR (|) zkombinujte příznaky.

Příznaky režimu rozložení Význam
LM_STRETCH Určuje, zda má být ovládací panel roztažen na velikost rámečku. Nastavte, pokud bar není dokovací panel (není k dispozici pro dokování). Nenastavuje se, když je panel ukotvený nebo plovoucí (je k dispozici pro ukotvení). Pokud je nastavená, LM_STRETCH ignoruje nLength a vrátí dimenze na základě LM_HORZ stavu. LM_STRETCH funguje podobně jako parametr bStretch použitý v CalcFixedLayout; podívejte se, že členová funkce obsahuje další informace o vztahu mezi roztažením a orientací.
LM_HORZ Označuje, že pruh je vodorovně nebo svisle orientovaný. Nastaví, pokud je pruh vodorovně orientovaný a pokud je svisle orientovaný, není nastaven. LM_HORZ funguje podobně jako parametr bHorz použitý v CalcFixedLayout; podívejte se, že členská funkce obsahuje další informace o vztahu mezi roztažením a orientací.
LM_MRUWIDTH Naposledy použitá dynamická šířka Ignoruje parametr nLength a používá zapamatovaného naposledy použitého šířku.
LM_HORZDOCK Vodorovné ukotvené rozměry. Ignoruje parametr nLength a vrátí dynamickou velikost s největší šířkou.
LM_VERTDOCK Svislé ukotvené rozměry. Ignoruje parametr nLength a vrátí dynamickou velikost s největší výškou.
LM_LENGTHY Nastavte, pokud nLength označuje výšku (směr Y) místo šířky.
LM_COMMIT Obnoví LM_MRUWIDTH na aktuální šířku plovoucího řídicího panelu.

Návratová hodnota

Velikost řídicího pruhu v pixelech objektu CSize .

Poznámky

Přepište tuto členovu funkci tak, aby poskytovalo vlastní dynamické rozložení ve třídách odvozených od CControlBar. MFC třídy odvozené z CControlBar, jako CToolbar, přepsat tuto člen funkce a poskytnout vlastní implementaci.

CControlBar::CalcFixedLayout

Voláním této členské funkce vypočítáte vodorovnou velikost řídicího panelu.

virtual CSize CalcFixedLayout(
    BOOL bStretch,
    BOOL bHorz);

Parametry

bStretch
Určuje, zda má být pruh roztažen na velikost rámečku. Parametr bStretch je nenulový, pokud bar není dokovací pruh (není k dispozici pro dokování) a je 0, pokud je ukotvený nebo plovoucí (k dispozici pro ukotvení).

bHorz
Označuje, že pruh je vodorovně nebo svisle orientovaný. Parametr bHorz je nenulový, pokud je pruh vodorovně orientovaný a je 0, pokud je svisle orientovaný.

Návratová hodnota

Velikost řídicího pruhu v pixelech objektu CSize .

Poznámky

Řídicí pruhy, jako jsou panely nástrojů, se dají vodorovně nebo svisle roztáhnout tak, aby vyhovovaly tlačítkům obsaženým v ovládacím panelu.

Pokud bStretch je PRAVDA, roztáhněte rozměr podél orientace poskytované bHorz. Jinými slovy, pokud bHorz je NEPRAVDA, je ovládací panel roztažen svisle. Pokud je bStretch NEPRAVDA, nedojde k žádnému roztažení. Následující tabulka uvádí možné permutace a výsledné styly řídicích pruhů bStretch a bHorz.

bStretch bHorz Natahování Orientace Ukotvení / Ukotvení
TRUE TRUE Vodorovné roztažení Vodorovně orientované Neukotvit
TRUE FALSE Svislé roztažení Svisle orientované Neukotvit
FALSE TRUE Není k dispozici žádné roztažení. Vodorovně orientované Dokovací
FALSE FALSE Není k dispozici žádné roztažení. Svisle orientované Dokovací

CControlBar::CalcInsideRect

Architektura volá tuto funkci k výpočtu klientské oblasti řídicího panelu.

virtual void CalcInsideRect(
    CRect& rect,
    BOOL bHorz) const;

Parametry

Rect
Obsahuje aktuální rozměry řídicího panelu; včetně hranic.

bHorz
Označuje, že pruh je vodorovně nebo svisle orientovaný. Parametr bHorz je nenulový, pokud je pruh vodorovně orientovaný a je 0, pokud je svisle orientovaný.

Poznámky

Tato funkce se volá před vykreslením řídicího panelu.

Přepište tuto funkci tak, aby se přizpůsobilo vykreslení ohraničení a úchytu řídicího panelu.

CControlBar::CControlBar

CControlBar Vytvoří objekt.

CControlBar();

CControlBar::D oPaint

Volal rámec pro vykreslení ohraničení a úchytu řídicího panelu.

virtual void DoPaint(CDC* pDC);

Parametry

pDC
Odkazuje na kontext zařízení, který se má použít k vykreslení ohraničení a úchytu řídicího panelu.

Poznámky

Přepište tuto funkci tak, aby přizpůsobila chování výkresu ovládacího panelu.

Další metodou přizpůsobení je přepsání DrawBorders funkcí a DrawGripper přidání vlastního kódu kreslení pro ohraničení a úchyt. Vzhledem k tomu, že tyto metody jsou volána výchozí DoPaint metodou, přepsání DoPaint není potřeba.

CControlBar::D rawBorders

Volá se rozhraním pro vykreslení ohraničení řídicího panelu.

virtual void DrawBorders(
    CDC* pDC,
    CRect& rect);

Parametry

pDC
Odkazuje na kontext zařízení, který se má použít k vykreslení ohraničení řídicího panelu.

Rect
CRect Objekt obsahující rozměry řídicího pruhu.

Poznámky

Přepište tuto funkci tak, aby se přizpůsobil vzhled ohraničení řídicího panelu.

CControlBar::D rawGripper

Volal rozhraní pro vykreslení úchytu řídicího panelu.

virtual void DrawGripper(
    CDC* pDC,
    const CRect& rect);

Parametry

pDC
Odkazuje na kontext zařízení, který se má použít k vykreslení úchytu řídicího panelu.

Rect
Objekt CRect obsahující rozměry úchytu řídicího panelu.

Poznámky

Přepište tuto funkci tak, aby se přizpůsobil vzhled úchytu řídicího panelu.

CControlBar::EnableDocking

Voláním této funkce povolíte ukotvení řídicího panelu.

void EnableDocking(DWORD dwDockStyle);

Parametry

dwDockStyle
Určuje, jestli ovládací panel podporuje ukotvení a strany nadřazeného okna, na které je možné ovládací panel ukotvit, pokud je podporován. Může to být jedna nebo více z následujících možností:

  • CBRS_ALIGN_TOP Umožňuje ukotvení v horní části klientské oblasti.

  • CBRS_ALIGN_BOTTOM Umožňuje ukotvení v dolní části klientské oblasti.

  • CBRS_ALIGN_LEFT Umožňuje ukotvení na levé straně klientské oblasti.

  • CBRS_ALIGN_RIGHT Umožňuje ukotvení na pravé straně klientské oblasti.

  • CBRS_ALIGN_ANY Umožňuje ukotvení na libovolné straně klientské oblasti.

  • CBRS_FLOAT_MULTI Umožňuje plovoucí více řídicích pruhů v jednom minirámeček okně.

Pokud je hodnota 0 (tj. indikující žádné příznaky), řídicí panel se neukotví.

Poznámky

Zadané strany se musí shodovat s jednou ze stran povolených pro ukotvení v cílovém okně rámečku nebo ovládací panel nelze ukotvit do okna rámečku.

CControlBar::GetBarStyle

Voláním této funkce určíte, která nastavení CBRS_ (styly ovládacích pruhů) jsou aktuálně nastavena pro ovládací panel.

DWORD GetBarStyle();

Návratová hodnota

Aktuální nastavení CBRS_ (styly ovládacích pruhů) pro ovládací panel. Úplný seznam dostupných stylů najdete v tématu CControlBar::SetBarStyle .

Poznámky

Nezpracuje styly WS_ (styl okna).

CControlBar::GetBorders

Vrátí aktuální hodnoty ohraničení pro ovládací panel.

CRect GetBorders() const;

Návratová hodnota

Objekt CRect , který obsahuje aktuální šířku (v pixelech) každé strany objektu řídicího pruhu. Například hodnota levého členu objektu CRect je šířka levého ohraničení.

CControlBar::GetCount

Vrátí počet položek mimo HWND objektu CControlBar .

int GetCount() const;

Návratová hodnota

Počet položek jiného typu než HWND na objektu CControlBar . Tato funkce vrátí hodnotu 0 pro objekt CDialogBar .

Poznámky

Typ položky závisí na odvozeného objektu: podokna pro objekty CStatusBar a tlačítka a oddělovače pro objekty CToolBar .

CControlBar::GetDockingFrame

Voláním této členské funkce získáte ukazatel na aktuální okno rámce, na které je ukotvený ovládací panel.

CFrameWnd* GetDockingFrame() const;

Návratová hodnota

Ukazatel na okno rámečku v případě úspěchu; jinak NULL.

Pokud ovládací panel není ukotvený k oknem rámečku (to znamená, že pokud je řídicí panel plovoucí), vrátí tato funkce ukazatel na nadřazený objekt CMiniFrameWnd.

Poznámky

Další informace o dokovatelných ovládacích pruhech naleznete v tématu CControlBar::EnableDocking a CFrameWnd::D ockControlBar.

CControlBar::IsFloating

Voláním této členské funkce určíte, zda je řídicí panel plovoucí nebo ukotvený.

BOOL IsFloating() const;

Návratová hodnota

Nenulový, pokud je řídicí panel plovoucí; jinak 0.

Poznámky

Chcete-li změnit stav řídicího panelu z ukotveného na plovoucí, zavolejte CFrameWnd::FloatControlBar.

CControlBar::m_bAutoDelete

Pokud nenízero, CControlBar objekt se odstraní při zničení řídicího panelu Windows.

BOOL m_bAutoDelete;

Poznámky

m_bAutoDelete je veřejná proměnná typu BOOL.

Objekt řídicího pruhu je obvykle vložen do objektu okna rámečku. V tomto případě je m_bAutoDelete 0, protože vložený řídicí panel objekt je zničen při zničení okna rámečku.

Tuto proměnnou nastavte na nenulovou hodnotu, pokud přidělíte CControlBar objekt v haldě a neplánujete volat delete.

CControlBar::m_pInPlaceOwner

Místní vlastník řídicího panelu.

CWnd* m_pInPlaceOwner;

CControlBar::OnUpdateCmdUI

Tato členová funkce je volána rozhraním pro aktualizaci stavu panelu nástrojů nebo stavového řádku.

virtual void OnUpdateCmdUI(
    CFrameWnd* pTarget,
    BOOL bDisableIfNoHndler) = 0;

Parametry

pTarget
Odkazuje na okno hlavního rámce aplikace. Tento ukazatel se používá pro směrování zpráv aktualizace.

bDisableIfNoHndler
Příznak označující, jestli má ovládací prvek, který nemá žádnou obslužnou rutinu aktualizace, by se měl automaticky zobrazit jako zakázaný.

Poznámky

Chcete-li aktualizovat jednotlivá tlačítka nebo podokno, pomocí ON_UPDATE_COMMAND_UI makra v mapě zpráv nastavte obslužnou rutinu aktualizace odpovídajícím způsobem. Další informace o použití tohoto makra najdete v ON_UPDATE_COMMAND_UI .

OnUpdateCmdUI volá se architekturou, když je aplikace nečinná. Okno rámce, které se má aktualizovat, musí být alespoň nepřímo podřízeným oknem viditelného rámečku. OnUpdateCmdUI je pokročilý přepisovatelný.

CControlBar::SetBarStyle

Voláním této funkce nastavíte požadované styly CBRS_ pro ovládací panel.

void SetBarStyle(DWORD dwStyle);

Parametry

dwStyle
Požadované styly pro ovládací panel. Může to být jedna nebo více z následujících možností:

  • CBRS_ALIGN_TOP Umožňuje ukotvit ovládací panel do horní části klientské oblasti okna rámečku.

  • CBRS_ALIGN_BOTTOM Umožňuje ukotvit ovládací panel do dolní části klientské oblasti okna rámečku.

  • CBRS_ALIGN_LEFT Umožňuje ukotvení ovládacího panelu na levé straně klientské oblasti okna rámečku.

  • CBRS_ALIGN_RIGHT Umožňuje ukotvení ovládacího panelu na pravé straně klientské oblasti okna rámečku.

  • CBRS_ALIGN_ANY Umožňuje ukotvit ovládací panel na libovolnou stranu klientské oblasti okna rámečku.

  • CBRS_BORDER_TOP Způsobí vykreslení ohraničení na horním okraji řídicího panelu, když bude viditelné.

  • CBRS_BORDER_BOTTOM Způsobí vykreslení ohraničení na dolním okraji řídicího panelu, když bude viditelné.

  • CBRS_BORDER_LEFT Způsobí vykreslení ohraničení na levém okraji ovládacího panelu, když bude viditelné.

  • CBRS_BORDER_RIGHT Způsobí vykreslení ohraničení na pravém okraji ovládacího panelu, když bude viditelné.

  • CBRS_FLOAT_MULTI Umožňuje plovoucí více řídicích pruhů v jednom minirámeček okně.

  • CBRS_TOOLTIPS Způsobí zobrazení popisů tlačítek pro ovládací panel.

  • CBRS_FLYBY Způsobí aktualizaci textu zprávy ve stejnou dobu jako popisy nástrojů.

  • CBRS_GRIPPER Způsobí, že úchyt, podobně jako u pásů v objektu CReBar , bude nakreslen pro libovolnou CControlBar-odvozenou třídu.

Poznámky

Nemá vliv na nastavení WS_ (styl okna).

CControlBar::SetBorders

Voláním této funkce nastavíte velikost ohraničení řídicího panelu.

void SetBorders(
    int cxLeft = 0,
    int cyTop = 0,
    int cxRight = 0,
    int cyBottom = 0);

void SetBorders(LPCRECT lpRect);

Parametry

cxLeft
Šířka (v pixelech) levého ohraničení ovládacího panelu

cyTop
Výška horního okraje řídicího panelu (v pixelech).

cxRight
Šířka (v pixelech) pravého ohraničení ovládacího panelu.

cyBottom
Výška (v pixelech) dolního ohraničení řídicího panelu.

lpRect
Ukazatel na objekt CRect , který obsahuje aktuální šířku (v pixelech) každého ohraničení objektu řídicího pruhu.

Příklad

Následující příklad kódu nastaví horní a dolní ohraničení řídicího pruhu na 5 pixelů a levé a pravé ohraničení na 2 pixely:

CControlBar &m_myControlBar = m_Rebar;
m_myControlBar.SetBorders(2, 5, 2, 5);

CControlBar::SetInPlaceOwner

Změní místního vlastníka řídicího panelu.

void SetInPlaceOwner(CWnd* pWnd);

Parametry

pWnd
Ukazatel na CWnd objekt.

Poznámky

Viz také

MFC – ukázkové CTRLBARS
CWnd – třída
Graf hierarchie
CToolBar – třída
CDialogBar – třída
CStatusBar – třída
CReBar – třída