Sdílet prostřednictvím


CMFCDropDownToolbarButton – třída

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

Jméno popis
CMFCDropDownToolbarButton::CMFCDropDownToolbarButton CMFCDropDownToolbarButton Vytvoří objekt.
CMFCDropDownToolbarButton::~CMFCDropDownToolbarButton Destruktor.

Veřejné metody

Jméno 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

Jméno 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ů

Vrácená 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.

Vrácená 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;

Vrácená 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;

Vrácená 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;

Vrácená 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.

Vrácená 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.

Vrácená 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();

Vrácená 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ů

Vrácená 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.

Vrácená 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

  • Image

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

Vrácená 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ů