Udostępnij za pośrednictwem


Klasa CMFCDropDownToolbarButton

Typ przycisku paska narzędzi, który zachowuje się jak zwykły przycisk po kliknięciu. Jednak otwiera pasek narzędzi listy rozwijanej ( klasa CMFCDropDownToolBar, jeśli użytkownik naciska i trzyma przycisk paska narzędzi w dół.

Składnia

class CMFCDropDownToolbarButton : public CMFCToolBarButton

Elementy członkowskie

Konstruktory publiczne

Nazwa/nazwisko opis
CMFCDropDownToolbarButton::CMFCDropDownToolbarButton CMFCDropDownToolbarButton Tworzy obiekt.
CMFCDropDownToolbarButton::~CMFCDropDownToolbarButton Destruktor.

Metody publiczne

Nazwa/nazwisko opis
CMFCDropDownToolbarButton::CopyFrom Kopiuje właściwości innego przycisku paska narzędzi do bieżącego przycisku. (Przesłonięcia) CMFCToolBarButton::CopyFrom.)
CMFCDropDownToolbarButton::CreateObject Używana przez platformę do tworzenia wystąpienia dynamicznego tego typu klasy.
CMFCDropDownToolbarButton::D ropDownToolbar Otwiera pasek narzędzi listy rozwijanej.
CMFCDropDownToolbarButton::ExportToMenuButton Kopiuje tekst z przycisku paska narzędzi do menu. (Przesłonięcia) CMFCToolBarButton::ExportToMenuButton.)
CMFCDropDownToolbarButton::GetDropDownToolBar Pobiera pasek narzędzi listy rozwijanej skojarzony z przyciskiem .
CMFCDropDownToolbarButton::GetThisClass Używany przez platformę do uzyskiwania wskaźnika do obiektu CRuntimeClass skojarzonego z tym typem klasy.
CMFCDropDownToolbarButton::IsDropDown Określa, czy pasek narzędzi listy rozwijanej jest obecnie otwarty.
CMFCDropDownToolbarButton::IsExtraSize Określa, czy przycisk może być wyświetlany z obramowaniem rozszerzonym. (Przesłonięcia) CMFCToolBarButton::IsExtraSize.)
CMFCDropDownToolbarButton::OnCalculateSize Wywoływana przez platformę w celu obliczenia rozmiaru przycisku dla określonego kontekstu urządzenia i stanu dokowania. (Przesłonięcia) CMFCToolBarButton::OnCalculateSize.)
CMFCDropDownToolbarButton::OnCancelMode Wywoływana przez platformę do obsługi komunikatu WM_CANCELMODE . (Przesłania CMCToolBarButton::OnCancelMode).
CMFCDropDownToolbarButton::OnChangeParentWnd Wywoływana przez strukturę po wstawieniu przycisku do nowego paska narzędzi. (Przesłonięcia) CMFCToolBarButton::OnChangeParentWnd.)
CMFCDropDownToolbarButton::OnClick Wywoływana przez platformę, gdy użytkownik kliknie przycisk myszy. (Przesłonięcia) CMFCToolBarButton::OnClick.)
CMFCDropDownToolbarButton::OnClickUp Wywoływana przez platformę, gdy użytkownik zwalnia przycisk myszy. (Przesłonięcia) CMFCToolBarButton::OnClickUp).
CMFCDropDownToolbarButton::OnContextHelp Wywoływana przez platformę, gdy nadrzędny pasek narzędzi obsługuje komunikat WM_HELPHITTEST. (Przesłonięcia) CMFCToolBarButton::OnContextHelp.)
CMFCDropDownToolbarButton::OnCustomizeMenu Modyfikuje podane menu, gdy aplikacja wyświetla menu skrótów na nadrzędnym pasku narzędzi. (Przesłonięcia) CMFCToolBarButton::OnCustomizeMenu.)
CMFCDropDownToolbarButton::OnDraw Wywoływana przez strukturę w celu narysowania przycisku przy użyciu określonych stylów i opcji. (Przesłonięcia) CMFCToolBarButton::OnDraw.)
CMFCDropDownToolbarButton::OnDrawOnCustomizeList Wywoływana przez strukturę, aby narysować przycisk w okienku Polecenia okna dialogowego Dostosowywanie . (Przesłonięcia) CMFCToolBarButton::OnDrawOnCustomizeList.)
CMFCDropDownToolbarButton::Serialize Odczytuje ten obiekt z archiwum lub zapisuje go w archiwum. (Przesłonięcia) CMFCToolBarButton::Serialize.)
CMFCDropDownToolbarButton::SetDefaultCommand Ustawia domyślne polecenie używane przez platformę, gdy użytkownik kliknie przycisk.

Składowe danych

Nazwa/nazwisko opis
CMFCDropDownToolbarButton::m_uiShowBarDelay Określa czas, przez jaki użytkownik musi trzymać przycisk myszy w dół przed wyświetleniem paska narzędzi listy rozwijanej.

Uwagi

Element CMFCDropDownToolBarButton różni się od zwykłego przycisku, ponieważ ma małą strzałkę w prawym dolnym rogu przycisku. Gdy użytkownik wybierze przycisk z paska narzędzi listy rozwijanej, platforma wyświetli jej ikonę na przycisku paska narzędzi najwyższego poziomu (przycisk z małą strzałką w prawym dolnym rogu).

Aby uzyskać informacje na temat implementowania paska narzędzi listy rozwijanej, zobacz Klasa CMFCDropDownToolBar.

Obiekt CMFCDropDownToolBarButton można wyeksportować do obiektu klasy CMFCToolBarMenuButton i wyświetlić go jako przycisk menu z menu podręcznym.

Hierarchia dziedziczenia

Obiekt CObject

CMFCToolBarButton

CMFCDropDownToolbarButton

Wymagania

Nagłówek: afxdropdowntoolbar.h

CMFCDropDownToolbarButton::CopyFrom

Kopiuje właściwości innego przycisku paska narzędzi do bieżącego przycisku.

virtual void CopyFrom(const CMFCToolBarButton& src);

Parametry

Src
[in] Odwołanie do przycisku źródłowego, z którego chcesz skopiować.

Uwagi

Wywołaj tę metodę, aby skopiować inny przycisk paska narzędzi do tego przycisku paska narzędzi. src musi mieć typ CMFCDropDownToolbarButton.

CMFCDropDownToolbarButton::CMFCDropDownToolbarButton

CMFCDropDownToolbarButton Tworzy obiekt.

CMFCDropDownToolbarButton();

CMFCDropDownToolbarButton(
    LPCTSTR lpszName,
    CMFCDropDownToolBar* pToolBar);

Parametry

lpszName
[in] Domyślny tekst przycisku.

pToolBar
[in] Wskaźnik do CMFCDropDownToolBar obiektu, który jest wyświetlany, gdy użytkownik naciska przycisk.

Uwagi

Drugie przeciążenie konstruktora kopiuje do przycisku listy rozwijanej pierwszy przycisk z paska narzędzi, który określa pToolBar .

Zazwyczaj przycisk paska narzędzi listy rozwijanej używa tekstu z ostatnio używanego przycisku na pasku narzędzi określonym przez narzędzie pToolBar . Używa on tekstu określonego przez lpszName , gdy przycisk jest konwertowany na przycisk menu lub jest wyświetlany na karcie Polecenia okna dialogowego Dostosowywanie . Aby uzyskać więcej informacji na temat okna dialogowego Dostosowywanie , zobacz CMFCToolBarsCustomizeDialog Class (Klasa CMFCToolBarsCustomizeDialog).

Przykład

W poniższym przykładzie pokazano, jak utworzyć obiekt CMFCDropDownToolbarButton klasy. Ten fragment kodu jest częścią przykładu pokazowego programu Visual Studio.

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

Otwiera pasek narzędzi listy rozwijanej.

BOOL DropDownToolbar(CWnd* pWnd);

Parametry

pWnd
[in] Okno nadrzędne ramki rozwijanej lub wartość NULL, aby użyć okna nadrzędnego przycisku paska narzędzi listy rozwijanej.

Wartość zwracana

Nonzero, jeśli metoda zakończyła się pomyślnie; w przeciwnym razie 0.

Uwagi

Metoda CMFCDropDownToolbarButton::OnClick wywołuje tę metodę, aby otworzyć pasek narzędzi listy rozwijanej, gdy użytkownik naciska i trzyma przycisk paska narzędzi w dół.

Ta metoda tworzy pasek narzędzi listy rozwijanej przy użyciu metody CMFCDropDownFrame::Create . Jeśli nadrzędny pasek narzędzi jest zadokowany w pionie, ta metoda umieszcza pasek narzędzi listy rozwijanej z lewej lub prawej strony paska narzędzi nadrzędnych, w zależności od dopasowania. W przeciwnym razie ta metoda umieszcza pasek narzędzi listy rozwijanej pod nadrzędnym paskiem narzędzi.

Ta metoda kończy się niepowodzeniem, jeśli pWnd ma wartość NULL, a przycisk paska narzędzi listy rozwijanej nie ma okna nadrzędnego.

CMFCDropDownToolbarButton::ExportToMenuButton

Kopiuje tekst z przycisku paska narzędzi do menu.

virtual BOOL ExportToMenuButton(CMFCToolBarMenuButton& menuButton) const;

Parametry

menuButton
[in] Odwołanie do przycisku menu docelowego.

Wartość zwracana

Nonzero, jeśli metoda powiedzie się; w przeciwnym razie 0.

Uwagi

Ta metoda wywołuje implementację klasy bazowej ( CMFCToolBarButton::ExportToMenuButton), a następnie dołącza do przycisku menu docelowego menu podręczne menu, które zawiera każdy element menu paska narzędzi w tym przycisku. Ta metoda nie dołącza menu podrzędnych do menu podręcznego.

Ta metoda kończy się niepowodzeniem, jeśli nadrzędny pasek narzędzi, m_pToolBar, ma wartość NULL lub implementacja klasy bazowej zwraca wartość FALSE.

CMFCDropDownToolbarButton::GetDropDownToolBar

Pobiera pasek narzędzi listy rozwijanej skojarzony z przyciskiem .

CMFCToolBar* GetDropDownToolBar() const;

Wartość zwracana

Pasek narzędzi listy rozwijanej skojarzony z przyciskiem .

Uwagi

Ta metoda zwraca element członkowski m_pToolBar danych.

CMFCDropDownToolbarButton::IsDropDown

Określa, czy pasek narzędzi listy rozwijanej jest obecnie otwarty.

BOOL IsDropDown() const;

Wartość zwracana

Nonzero, jeśli pasek narzędzi listy rozwijanej jest obecnie otwarty; w przeciwnym razie 0.

Uwagi

Platforma otwiera pasek narzędzi listy rozwijanej przy użyciu metody CMFCDropDownToolbarButton::D ropDownToolbar . Platforma zamyka pasek narzędzi listy rozwijanej, gdy użytkownik naciska lewy przycisk myszy w obszarze spoza klienta paska narzędzi listy rozwijanej.

CMFCDropDownToolbarButton::IsExtraSize

Określa, czy przycisk może być wyświetlany z obramowaniem rozszerzonym.

virtual BOOL IsExtraSize() const;

Wartość zwracana

Niezerowe, jeśli przycisk paska narzędzi może być wyświetlany z obramowaniem rozszerzonym; w przeciwnym razie 0.

Uwagi

Aby uzyskać więcej informacji na temat rozszerzonych obramowań, zobacz CMFCToolBarButton::IsExtraSize.

CMFCDropDownToolbarButton::m_uiShowBarDelay

Określa czas, przez jaki użytkownik musi trzymać przycisk myszy w dół przed wyświetleniem paska narzędzi listy rozwijanej.

static UINT m_uiShowBarDelay;

Uwagi

Czas opóźnienia jest mierzony w milisekundach. Wartość domyślna to 500. Możesz ustawić kolejne opóźnienie, zmieniając wartość tego udostępnionego elementu członkowskiego danych.

CMFCDropDownToolbarButton::OnCalculateSize

Wywoływana przez platformę w celu obliczenia rozmiaru przycisku dla określonego kontekstu urządzenia i stanu dokowania.

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

Parametry

PDC
[in] Kontekst urządzenia, w ramach którego jest wyświetlany przycisk.

sizeDefault
[in] Domyślny rozmiar przycisku.

bHorz
[in] Stan docku nadrzędnego paska narzędzi. Ten parametr ma wartość TRUE, jeśli pasek narzędzi jest zadokowany w poziomie lub jest przestawny lub FAŁSZ, jeśli pasek narzędzi jest zadokowany w pionie.

Wartość zwracana

Struktura SIZE zawierająca wymiary przycisku w pikselach.

Uwagi

Ta metoda rozszerza implementację klasy bazowej ( CMFCToolBarButton::OnCalculateSize), dodając szerokość strzałki listy rozwijanej do wymiaru poziomego rozmiaru przycisku.

CMFCDropDownToolbarButton::OnChangeParentWnd

Wywoływana przez strukturę po wstawieniu przycisku do nowego paska narzędzi.

virtual void OnChangeParentWnd(CWnd* pWndParent);

Parametry

pWndParent
[in] Nowe okno nadrzędne.

Uwagi

Ta metoda zastępuje implementację klasy bazowej ( CMFCToolBarButton::OnChangeParentWnd) przez wyczyszczenie etykiety tekstowej ( CMFCToolBarButton::m_strText) i ustawienie elementów członkowskich danych CMFCToolBarButton::m_bText i CMFCToolBarButton::m_bUserButton elementów członkowskich danych false.

CMFCDropDownToolbarButton::OnClick

Wywoływana przez platformę, gdy użytkownik kliknie przycisk myszy.

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

Parametry

pWnd
[in] Okno nadrzędne przycisku paska narzędzi.

bDelay
[in] Wartość TRUE, jeśli komunikat powinien być obsługiwany z opóźnieniem.

Wartość zwracana

Nonzero, jeśli przycisk przetwarza komunikat kliknięcia; w przeciwnym razie 0.

Uwagi

Ta metoda rozszerza implementację klasy bazowej CMFCToolBarButton::OnClick, aktualizując stan paska narzędzi listy rozwijanej.

Gdy użytkownik kliknie przycisk paska narzędzi, ta metoda tworzy czasomierz, który czeka czas określony przez cmFCDropDownToolbarButton::m_uiShowBarDelay elementu członkowskiego danych, a następnie otwiera pasek narzędzi listy rozwijanej przy użyciu metody CMFCDropDownToolbarButton::D ropDownToolbarbar . Ta metoda zamyka pasek narzędzi listy rozwijanej po raz drugi, gdy użytkownik kliknie przycisk paska narzędzi.

CMFCDropDownToolbarButton::OnClickUp

Wywoływana przez platformę, gdy użytkownik zwalnia przycisk myszy.

virtual BOOL OnClickUp();

Wartość zwracana

Nonzero, jeśli przycisk przetwarza komunikat kliknięcia; w przeciwnym razie 0.

Uwagi

Ta metoda rozszerza implementację klasy bazowej CMFCToolBarButton::OnClickUp, aktualizując stan paska narzędzi listy rozwijanej.

Ta metoda zatrzymuje czasomierz paska narzędzi listy rozwijanej, jeśli jest aktywny. Zamyka pasek narzędzi listy rozwijanej, jeśli jest otwarty.

Aby uzyskać więcej informacji na temat paska narzędzi listy rozwijanej i czasomierza paska narzędzi listy rozwijanej, zobacz CMFCDropDownToolbarButton::OnClick.

CMFCDropDownToolbarButton::OnContextHelp

Wywoływana przez platformę, gdy nadrzędny pasek narzędzi obsługuje komunikat WM_HELPHITTEST.

virtual BOOL OnContextHelp(CWnd* pWnd);

Parametry

pWnd
[in] Okno nadrzędne przycisku paska narzędzi.

Wartość zwracana

Nonzero, jeśli przycisk przetwarza komunikat pomocy; w przeciwnym razie 0.

Uwagi

Ta metoda rozszerza implementację klasy bazowej ( CMFCToolBarButton::OnContextHelp), wywołując metodę CMFCDropDownToolbarButton::OnClick z bDelay ustawioną na FALSE. Ta metoda zwraca wartość zwracaną przez polecenie CMFCDropDownToolbarButton::OnClick.

Aby uzyskać więcej informacji na temat komunikatu WM_HELPHITTEST, zobacz TN028: Pomoc kontekstowa z uwzględnieniem kontekstu.

CMFCDropDownToolbarButton::OnCustomizeMenu

Modyfikuje podane menu, gdy aplikacja wyświetla menu skrótów na nadrzędnym pasku narzędzi.

virtual BOOL OnCustomizeMenu(CMenu* pMenu);

Parametry

pMenu
[in] Menu do dostosowania.

Wartość zwracana

Ta metoda zwraca wartość TRUE.

Uwagi

Ta metoda rozszerza implementację klasy bazowej ( CMFCToolBarButton::OnCustomizeMenu), wyłączając następujące elementy menu:

  • Kopiuj obraz przycisku

  • Wygląd przycisku

  • Obraz

  • Tekst

  • Obraz i tekst

Zastąpij tę metodę, aby zmodyfikować menu skrótów wyświetlane przez platformę w trybie dostosowywania.

CMFCDropDownToolbarButton::OnDraw

Wywoływana przez strukturę w celu narysowania przycisku przy użyciu określonych stylów i opcji.

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
[in] Kontekst urządzenia, w ramach którego jest wyświetlany przycisk.

Rect
[in] Prostokąt ograniczenia przycisku.

pImages
[in] Kolekcja obrazów pasków narzędzi skojarzonych z przyciskiem .

bHorz
[in] Stan docku nadrzędnego paska narzędzi. Ten parametr ma wartość TRUE, gdy przycisk jest zadokowany poziomo i FALSE, gdy przycisk jest zadokowany w pionie.

bCustomizeMode
[in] Określa, czy pasek narzędzi jest w trybie dostosowywania. Ten parametr ma wartość TRUE, gdy pasek narzędzi jest w trybie dostosowywania i wartość FALSE, gdy pasek narzędzi nie jest w trybie dostosowywania.

bHighlight
[in] Określa, czy przycisk jest wyróżniony. Ten parametr ma wartość TRUE, gdy przycisk jest wyróżniony i WARTOŚĆ FALSE, gdy przycisk nie jest wyróżniony.

bDrawBorder
[in] Określa, czy przycisk powinien wyświetlać obramowanie. Ten parametr ma wartość TRUE, gdy przycisk powinien wyświetlać obramowanie i wartość FALSE, gdy przycisk nie powinien wyświetlać obramowania.

bGrayDisabledButtons
[in] Określa, czy zacienić wyłączone przyciski, czy używać kolekcji wyłączonych obrazów. Ten parametr ma wartość TRUE, gdy wyłączone przyciski powinny być cieniowane i FALSE, gdy ta metoda powinna używać kolekcji wyłączonych obrazów.

Uwagi

Zastąpij tę metodę, aby dostosować rysunek przycisku paska narzędzi.

CMFCDropDownToolbarButton::OnDrawOnCustomizeList

Wywoływana przez strukturę, aby narysować przycisk w okienku Polecenia okna dialogowego Dostosowywanie .

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

Parametry

PDC
[in] Kontekst urządzenia, w ramach którego jest wyświetlany przycisk.

Rect
[in] Prostokąt ograniczenia przycisku.

bSelected
[in] Czy przycisk jest zaznaczony. Jeśli ten parametr ma wartość TRUE, zostanie wybrany przycisk . Jeśli ten parametr ma wartość FALSE, przycisk nie jest zaznaczony.

Wartość zwracana

Szerokość przycisku w pikselach w określonym kontekście urządzenia.

Uwagi

Ta metoda jest wywoływana przez okno dialogowe dostosowywania ( karta Polecenia ), gdy przycisk jest wymagany do wyświetlenia się w polu listy właściciel-rysowanie.

Ta metoda rozszerza implementację klasy bazowej ( CMFCToolBarButton::OnDrawOnCustomizeList), zmieniając etykietę tekstową przycisku na nazwę przycisku (czyli na wartość parametru lpszName przekazanego do konstruktora).

CMFCDropDownToolbarButton::Serialize

Odczytuje ten obiekt z archiwum lub zapisuje go w archiwum.

virtual void Serialize(CArchive& ar);

Parametry

Ar
[in] Obiekt CArchive , z którego lub do serializacji.

Uwagi

Ta metoda rozszerza implementację klasy bazowej ( CMFCToolBarButton::Serialize), serializując identyfikator zasobu nadrzędnego paska narzędzi. Gdy archiwum jest ładowane ( CArchive::IsLoading zwraca wartość niezerową), ta metoda ustawia m_pToolBar element członkowski danych na pasek narzędzi zawierający serializowany identyfikator zasobu.

CMFCDropDownToolbarButton::SetDefaultCommand

Ustawia domyślne polecenie używane przez platformę, gdy użytkownik kliknie przycisk.

void SetDefaultCommand(UINT uiCmd);

Parametry

uiCmd
[in] Identyfikator polecenia domyślnego.

Uwagi

Wywołaj tę metodę, aby określić domyślne polecenie wykonywane przez platformę po kliknięciu przycisku przez użytkownika. Element o identyfikatorze polecenia określonym przez uiCmd musi znajdować się na nadrzędnym pasku narzędzi listy rozwijanej.

Zobacz też

Wykres hierarchii
Klasy
Klasa CMFCDropDownToolBar
Klasa CMFCToolBar
Klasa CMFCToolBarMenuButton
Przewodnik: umieszczanie kontrolek na paskach narzędzi