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
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));
CMFCDropDownToolbarButton::D ropDownToolbar
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_pToolBar
je 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ů