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