CMFCDropDownToolbarButton – třída

Poznámka:

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

Typ tlačítka panelu nástrojů, které se chová jako běžné tlačítko při kliknutí. Otevře se však rozevírací panel nástrojů ( CMFCDropDownToolBar Třída , pokud uživatel stiskne a podrží tlačítko panelu nástrojů dolů.

Syntaxe

class CMFCDropDownToolbarButton : public CMFCToolBarButton

Členové

Veřejné konstruktory

Název Popis
CMFCDropDownToolbarButton::CMFCDropDownToolbarButton CMFCDropDownToolbarButton Vytvoří objekt.
CMFCDropDownToolbarButton::~CMFCDropDownToolbarButton Destruktor.

Veřejné metody

Název Popis
CMFCDropDownToolbarButton::CopyFrom Zkopíruje vlastnosti jiného tlačítka panelu nástrojů na aktuální tlačítko. (Přepsání CMFCToolBarButton::CopyFrom.)
CMFCDropDownToolbarButton::CreateObject Používá se architekturou k vytvoření dynamické instance tohoto typu třídy.
CMFCDropDownToolbarButton::D ropDownToolbar Otevře rozevírací panel nástrojů.
CMFCDropDownToolbarButton::ExportToMenuButton Zkopíruje text z tlačítka panelu nástrojů do nabídky. (Přepsání CMFCToolBarButton::ExportToMenuButton.)
CMFCDropDownToolbarButton::GetDropDownToolBar Načte rozevírací panel nástrojů přidružený k tlačítku.
CMFCDropDownToolbarButton::GetThisClass Používá se architekturou k získání ukazatele na CRuntimeClass objektu, který je přidružen k tomuto typu třídy.
CMFCDropDownToolbarButton::IsDropDown Určuje, zda je aktuálně otevřen rozevírací panel nástrojů.
CMFCDropDownToolbarButton::IsExtraSize Určuje, zda lze tlačítko zobrazit s rozšířeným ohraničením. (Přepsání CMFCToolBarButton::IsExtraSize.)
CMFCDropDownToolbarButton::OnCalculateSize Volané rozhraním pro výpočet velikosti tlačítka pro zadaný kontext zařízení a stav ukotvení. (Přepsání CMFCToolBarButton::OnCalculateSize.)
CMFCDropDownToolbarButton::OnCancelMode Volá se rozhraním pro zpracování WM_CANCELMODE zprávy. (Přepsání CMCToolBarButton::OnCancelMode.)
CMFCDropDownToolbarButton::OnChangeParentWnd Volá se rozhraním při vložení tlačítka do nového panelu nástrojů. (Přepsání CMFCToolBarButton::OnChangeParentWnd.)
CMFCDropDownToolbarButton::OnClick Volá se rozhraním, když uživatel klikne na tlačítko myši. (Přepsání CMFCToolBarButton::OnClick.)
CMFCDropDownToolbarButton::OnClickUp Volá se rozhraním, když uživatel uvolní tlačítko myši. (Přepsání CMFCToolBarButton::OnClickUp.)
CMFCDropDownToolbarButton::OnContextHelp Volá se rozhraním, když nadřazený panel nástrojů zpracovává zprávu WM_HELPHITTEST. (Přepsání CMFCToolBarButton::OnContextHelp.)
CMFCDropDownToolbarButton::OnCustomizeMenu Upraví zadanou nabídku, když aplikace zobrazí místní nabídku na nadřazené panelu nástrojů. (Přepsání CMFCToolBarButton::OnCustomizeMenu.)
CMFCDropDownToolbarButton::OnDraw Volá se rozhraním pro kreslení tlačítka pomocí zadaných stylů a možností. (Přepsání CMFCToolBarButton::OnDraw.)
CMFCDropDownToolbarButton::OnDrawOnCustomizeList Volá se rozhraním pro kreslení tlačítka v podokně Příkazy dialogového okna Přizpůsobit . (Přepsání CMFCToolBarButton::OnDrawOnCustomizeList.)
CMFCDropDownToolbarButton::Serialize Načte tento objekt z archivu nebo ho zapíše do archivu. (Přepsání CMFCToolBarButton::Serialize.)
CMFCDropDownToolbarButton::SetDefaultCommand Nastaví výchozí příkaz, který architektura používá, když uživatel klikne na tlačítko.

Datové členy

Název Popis
CMFCDropDownToolbarButton::m_uiShowBarDelay Určuje dobu, po kterou musí uživatel podržet tlačítko myši před zobrazením rozevíracího panelu nástrojů.

Poznámky

Liší CMFCDropDownToolBarButton se od obyčejného tlačítka v tom, že má malou šipku v pravém dolním rohu tlačítka. Jakmile uživatel vybere tlačítko z rozevíracího panelu nástrojů, architektura zobrazí ikonu na tlačítku panelu nástrojů nejvyšší úrovně (tlačítko s malou šipkou v pravém dolním rohu).

Informace o tom, jak implementovat rozevírací panel nástrojů, naleznete v CMFCDropDownToolBar Třída.

Objekt CMFCDropDownToolBarButton lze exportovat do objektu CMFCToolBarMenuButton Class a zobrazit jako tlačítko nabídky s místní nabídkou.

Hierarchie dědičnosti

Objekt CObject

CMFCToolBarButton

CMFCDropDownToolbarButton

Požadavky

Záhlaví: afxdropdowntoolbar.h

CMFCDropDownToolbarButton::CopyFrom

Zkopíruje vlastnosti jiného tlačítka panelu nástrojů na aktuální tlačítko.

virtual void CopyFrom(const CMFCToolBarButton& src);

Parametry

Src
[v] Odkaz na tlačítko zdroje, ze kterého chcete kopírovat.

Poznámky

Voláním této metody zkopírujte na toto tlačítko panelu nástrojů další tlačítko panelu nástrojů. src musí být typu CMFCDropDownToolbarButton.

CMFCDropDownToolbarButton::CMFCDropDownToolbarButton

CMFCDropDownToolbarButton Vytvoří objekt.

CMFCDropDownToolbarButton();

CMFCDropDownToolbarButton(
    LPCTSTR lpszName,
    CMFCDropDownToolBar* pToolBar);

Parametry

lpszName
[v] Výchozí text tlačítka.

pToolBar
[v] Ukazatel na CMFCDropDownToolBar objekt, který se zobrazí, když uživatel stiskne tlačítko.

Poznámky

Druhé přetížení konstruktoru zkopíruje do rozevíracího tlačítka první tlačítko z panelu nástrojů, který pToolBar určuje.

Tlačítko rozevíracího panelu nástrojů obvykle používá text z naposledy použitého tlačítka na panelu nástrojů, který určuje pToolBar . Používá text určený lpszName při převodu tlačítka na tlačítko nabídky nebo je zobrazen na kartě Příkazy dialogového okna Přizpůsobit. Další informace o přizpůsobit dialogové okno, viz CMFCToolBarsCustomizeDialog Třída.

Příklad

Následující příklad ukazuje, jak vytvořit objekt CMFCDropDownToolbarButton třídy. Tento fragment kódu je součástí ukázky sady Visual Studio Demo.

// Add dropdown resources button
// CMFCToolBarsCustomizeDialog* pDlgCust
// CMFCDropDownToolBar m_wndToolbarResource
pDlgCust->AddButton(_T("Build"), CMFCDropDownToolbarButton(_T("Add Resource"), &m_wndToolbarResource));

Otevře rozevírací panel nástrojů.

BOOL DropDownToolbar(CWnd* pWnd);

Parametry

pWnd
[v] Nadřazené okno rozevíracího rámce nebo NULL pro použití nadřazeného okna rozevíracího panelu nástrojů

Návratová hodnota

Nenulové, pokud je metoda úspěšná; jinak 0.

Poznámky

CMFCDropDownToolbarButton::OnClick metoda volá tuto metodu k otevření rozevíracího panelu nástrojů, když uživatel stiskne a podrží tlačítko panelu nástrojů dolů.

Tyto metody vytvoří rozevírací panel nástrojů pomocí CMFCDropDownFrame::Create metoda. Pokud je nadřazený panel nástrojů ukotven svisle, umístí tato metoda rozevírací panel nástrojů buď na levou nebo pravou stranu nadřazeného panelu nástrojů v závislosti na přizpůsobení. Jinak tato metoda umístí rozevírací panel nástrojů pod nadřazený panel nástrojů.

Tato metoda selže, pokud pWnd je NULL a tlačítko rozevíracího panelu nástrojů nemá nadřazené okno.

CMFCDropDownToolbarButton::ExportToMenuButton

Zkopíruje text z tlačítka panelu nástrojů do nabídky.

virtual BOOL ExportToMenuButton(CMFCToolBarMenuButton& menuButton) const;

Parametry

menuButton
[v] Odkaz na tlačítko cílové nabídky.

Návratová hodnota

Nenulové, pokud je metoda úspěšná; jinak 0.

Poznámky

Tato metoda volá implementaci základní třídy ( CMFCToolBarButton::ExportToMenuButton) a pak připojí k cílové nabídce tlačítko místní nabídky, která obsahuje jednotlivé položky nabídky panelu nástrojů v tomto tlačítku. Tato metoda nepřidá dílčí nabídky do místní nabídky.

Tato metoda selže, pokud nadřazený panel nástrojů , m_pToolBarje NULL nebo implementace základní třídy vrátí FALSE.

CMFCDropDownToolbarButton::GetDropDownToolBar

Načte rozevírací panel nástrojů přidružený k tlačítku.

CMFCToolBar* GetDropDownToolBar() const;

Návratová hodnota

Rozevírací panel nástrojů přidružený k tlačítku

Poznámky

Tato metoda vrátí m_pToolBar datový člen.

CMFCDropDownToolbarButton::IsDropDown

Určuje, zda je aktuálně otevřen rozevírací panel nástrojů.

BOOL IsDropDown() const;

Návratová hodnota

Nenulové, pokud je panel nástrojů rozevíracího seznamu aktuálně otevřený; jinak 0.

Poznámky

Architektura otevře rozevírací panel nástrojů pomocí CMFCDropDownToolbarButton::D ropDownToolbarbar metoda. Architektura zavře rozevírací panel nástrojů, když uživatel stiskne levé tlačítko myši v oblasti mimo klient na rozevíracím panelu nástrojů.

CMFCDropDownToolbarButton::IsExtraSize

Určuje, zda lze tlačítko zobrazit s rozšířeným ohraničením.

virtual BOOL IsExtraSize() const;

Návratová hodnota

Nenulové, pokud lze tlačítko panelu nástrojů zobrazit s rozšířeným ohraničení; jinak 0.

Poznámky

Další informace o rozšířených ohraničení naleznete v tématu CMFCToolBarButton::IsExtraSize.

CMFCDropDownToolbarButton::m_uiShowBarDelay

Určuje dobu, po kterou musí uživatel podržet tlačítko myši před zobrazením rozevíracího panelu nástrojů.

static UINT m_uiShowBarDelay;

Poznámky

Doba zpoždění se měří v milisekundách. Výchozí hodnota je 500. Jinou prodlevu můžete nastavit změnou hodnoty tohoto sdíleného datového člena.

CMFCDropDownToolbarButton::OnCalculateSize

Volané rozhraním pro výpočet velikosti tlačítka pro zadaný kontext zařízení a stav ukotvení.

virtual SIZE OnCalculateSize(
    CDC* pDC,
    const CSize& sizeDefault,
    BOOL bHorz);

Parametry

pDC
[v] Kontext zařízení, který tlačítko zobrazí.

sizeDefault
[v] Výchozí velikost tlačítka.

bHorz
[v] Stav ukotvení nadřazeného panelu nástrojů Tento parametr je TRUE, pokud je panel nástrojů ukotven vodorovně nebo plovoucí, nebo NEPRAVDA, pokud je panel nástrojů ukotven svisle.

Návratová hodnota

Struktura SIZE , která obsahuje rozměry tlačítka v pixelech.

Poznámky

Tato metoda rozšiřuje implementaci základní třídy ( CMFCToolBarButton::OnCalculateSize) přidáním šířky šipky rozevíracího seznamu do vodorovné dimenze velikosti tlačítka.

CMFCDropDownToolbarButton::OnChangeParentWnd

Volá se rozhraním při vložení tlačítka do nového panelu nástrojů.

virtual void OnChangeParentWnd(CWnd* pWndParent);

Parametry

pWndParent
[v] Nové nadřazené okno.

Poznámky

Tato metoda přepíše implementaci základní třídy ( CMFCToolBarButton::OnChangeParentWnd) vymazáním textového popisku ( CMFCToolBarButton::m_strText) a nastavením CMFCToolBarButton::m_bText a CMFCToolBarButton::m_bUserButton datových členů na FALSE.

CMFCDropDownToolbarButton::OnClick

Volá se rozhraním, když uživatel klikne na tlačítko myši.

virtual BOOL OnClick(
    CWnd* pWnd,
    BOOL bDelay = TRUE);

Parametry

pWnd
[v] Nadřazené okno tlačítka panelu nástrojů

bDelay
[v] TRUE, pokud by zpráva měla být zpracována se zpožděním.

Návratová hodnota

Nenulové, pokud tlačítko zpracuje zprávu kliknutí; jinak 0.

Poznámky

Tato metoda rozšiřuje implementaci základní třídy CMFCToolBarButton::OnClick aktualizací stavu rozevíracího panelu nástrojů.

Když uživatel klikne na tlačítko panelu nástrojů, tato metoda vytvoří časovač, který počká na dobu určenou CMFCDropDownToolbarButton::m_uiShowBarDelay datový člen a pak otevře rozevírací panel nástrojů pomocí CMFCDropDownToolbarButton::D ropDownToolbarBar Metoda. Tato metoda zavře rozevírací panel nástrojů podruhé, když uživatel klikne na tlačítko panelu nástrojů.

CMFCDropDownToolbarButton::OnClickUp

Volá se rozhraním, když uživatel uvolní tlačítko myši.

virtual BOOL OnClickUp();

Návratová hodnota

Nenulové, pokud tlačítko zpracuje zprávu kliknutí; jinak 0.

Poznámky

Tato metoda rozšiřuje implementaci základní třídy CMFCToolBarButton::OnClickUp aktualizací stavu rozevíracího panelu nástrojů.

Tato metoda zastaví časovač rozevíracího panelu nástrojů, pokud je aktivní. Pokud je otevřený, zavře rozevírací panel nástrojů.

Další informace o rozevíracím panelu nástrojů a časovači rozevíracího panelu nástrojů naleznete v tématu CMFCDropDownToolbarButton::OnClick.

CMFCDropDownToolbarButton::OnContextHelp

Volá se rozhraním, když nadřazený panel nástrojů zpracovává zprávu WM_HELPHITTEST.

virtual BOOL OnContextHelp(CWnd* pWnd);

Parametry

pWnd
[v] Nadřazené okno tlačítka panelu nástrojů

Návratová hodnota

Nenulové, pokud tlačítko zpracuje zprávu nápovědy; jinak 0.

Poznámky

Tato metoda rozšiřuje implementaci základní třídy ( CMFCToolBarButton::OnContextHelp) voláním CMFCDropDownToolbarButton::OnClick metoda s bDelay nastavenou na FALSE. Tato metoda vrátí hodnotu, která je vrácena CMFCDropDownToolbarButton::OnClick.

Další informace o WM_HELPHITTEST zprávě naleznete v tématu TN028: Podpora kontextové nápovědy.

CMFCDropDownToolbarButton::OnCustomizeMenu

Upraví zadanou nabídku, když aplikace zobrazí místní nabídku na nadřazené panelu nástrojů.

virtual BOOL OnCustomizeMenu(CMenu* pMenu);

Parametry

pMenu
[v] Nabídka, která se má přizpůsobit.

Návratová hodnota

Tato metoda vrátí hodnotu TRUE.

Poznámky

Tato metoda rozšiřuje implementaci základní třídy ( CMFCToolBarButton::OnCustomizeMenu) zakázáním následujících položek nabídky:

  • Kopírovat obrázek tlačítka

  • Vzhled tlačítka

  • Obrázek

  • Text

  • Obrázek a text

Tuto metodu přepište tak, aby se změnila místní nabídka, kterou architektura zobrazuje v režimu přizpůsobení.

CMFCDropDownToolbarButton::OnDraw

Volá se rozhraním pro kreslení tlačítka pomocí zadaných stylů a možností.

virtual void OnDraw(
    CDC* pDC,
    const CRect& rect,
    CMFCToolBarImages* pImages,
    BOOL bHorz = TRUE,
    BOOL bCustomizeMode = FALSE,
    BOOL bHighlight = FALSE,
    BOOL bDrawBorder = TRUE,
    BOOL bGrayDisabledButtons = TRUE);

Parametry

pDC
[v] Kontext zařízení, který tlačítko zobrazí.

Rect
[v] Ohraničující obdélník tlačítka.

pImages
[v] Kolekce obrázků panelu nástrojů, které jsou přidružené k tlačítku.

bHorz
[v] Stav ukotvení nadřazeného panelu nástrojů Tento parametr je TRUE, pokud je tlačítko ukotveno vodorovně a NEPRAVDA, pokud je tlačítko ukotveno svisle.

bCustomizeMode
[v] Určuje, jestli je panel nástrojů v režimu přizpůsobení. Tento parametr je TRUE, pokud je panel nástrojů v režimu přizpůsobení a NEPRAVDA, pokud panel nástrojů není v režimu přizpůsobení.

bHighlight
[v] Určuje, jestli je tlačítko zvýrazněné. Tento parametr je TRUE, pokud je tlačítko zvýrazněné a NEPRAVDA, pokud tlačítko není zvýrazněno.

bDrawBorder
[v] Určuje, jestli má tlačítko zobrazit jeho ohraničení. Tento parametr je TRUE, pokud by mělo tlačítko zobrazit jeho ohraničení a NEPRAVDA, pokud by se nemělo zobrazit jeho ohraničení.

bGrayDisabledButtons
[v] Určuje, jestli se mají vystínovat zakázaná tlačítka nebo použít zakázanou kolekci obrázků. Tento parametr je TRUE, pokud by zakázaná tlačítka měla být stínována a FALSE, pokud by tato metoda měla používat zakázanou kolekci obrázků.

Poznámky

Tuto metodu přepište, pokud chcete přizpůsobit výkres tlačítka panelu nástrojů.

CMFCDropDownToolbarButton::OnDrawOnCustomizeList

Volá se rozhraním pro kreslení tlačítka v podokně Příkazy dialogového okna Přizpůsobit .

virtual int OnDrawOnCustomizeList(
    CDC* pDC,
    const CRect& rect,
    BOOL bSelected);

Parametry

pDC
[v] Kontext zařízení, který tlačítko zobrazí.

Rect
[v] Ohraničující obdélník tlačítka.

bSelected
[v] Určuje, jestli je tlačítko vybrané. Pokud je tento parametr TRUE, je tlačítko vybráno. Pokud je tento parametr NEPRAVDA, tlačítko není vybráno.

Návratová hodnota

Šířka tlačítka v pixelech v zadaném kontextu zařízení.

Poznámky

Tato metoda je volána pomocí dialogového okna přizpůsobení ( příkazy karta), pokud je tlačítko nutné k zobrazení v seznamu vlastník-kreslení.

Tato metoda rozšiřuje implementaci základní třídy ( CMFCToolBarButton::OnDrawOnCustomizeList) změnou textového popisku tlačítka na název tlačítka (to znamená na hodnotu lpszName parametru, který jste předali konstruktoru).

CMFCDropDownToolbarButton::Serialize

Načte tento objekt z archivu nebo ho zapíše do archivu.

virtual void Serialize(CArchive& ar);

Parametry

ar
[v] Objekt CArchive , ze kterého nebo do kterého se má serializovat.

Poznámky

Tato metoda rozšiřuje implementaci základní třídy ( CMFCToolBarButton::Serialize) serializací ID prostředku nadřazeného panelu nástrojů. Při načítání archivu ( CArchive::IsLoading vrátí nenulovou hodnotu), tato metoda nastaví m_pToolBar datový člen na panel nástrojů, který obsahuje serializované ID prostředku.

CMFCDropDownToolbarButton::SetDefaultCommand

Nastaví výchozí příkaz, který architektura používá, když uživatel klikne na tlačítko.

void SetDefaultCommand(UINT uiCmd);

Parametry

uiCmd
[v] ID výchozího příkazu.

Poznámky

Voláním této metody určíte výchozí příkaz, který architektura spustí, když uživatel klikne na tlačítko. Položka s ID příkazu, které určuje uiCmd , musí být umístěna na nadřazené rozevírací panel nástrojů.

Viz také

Graf hierarchie
Třídy
CMFCDropDownToolBar – třída
CMFCToolBar – třída
CMFCToolBarMenuButton – třída
Návod: Umístění ovládacích prvků na panely nástrojů