Udostępnij za pośrednictwem


Za pomocą przycisków rozwijanych w formancie Toolbar

Oprócz standardowych przycisków pasek narzędzi może mieć również przycisków rozwijanych.Przycisk rozwijania jest zwykle wskazywany przez obecność załączony w dół strzałek.

[!UWAGA]

Załączony w dół Strzałka pojawi się tylko wtedy, gdy TBSTYLE_EX_DRAWDDARROWS rozszerzone styl został ustawiony.

Kiedy użytkownik kliknie na tę strzałkę (lub przycisku,), jeśli występuje Brak strzałki TBN_DROPDOWN komunikat z powiadomieniem jest wysyłana do nadrzędnego formantu toolbar.Można obsłużyć tego powiadomienia i wyświetlić wyskakujące menu; podobne do zachowania programu Internet Explorer.

Poniższa procedura ilustruje sposób implementowania przycisk rozwijania narzędzi z wyskakującego menu:

Aby zaimplementować przycisk rozwijania

  1. Raz na CToolBarCtrl utworzono obiekt, ustaw TBSTYLE_EX_DRAWDDARROWS styl, używając następującego kodu:

    m_ToolBarCtrl.SetExtendedStyle(TBSTYLE_EX_DRAWDDARROWS);
    
  2. Ustaw TBSTYLE_DROPDOWN nowy styl dla każdego (InsertButton lub AddButtons) lub istniejące (SetButtonInfo) przyciski, które będą przycisków rozwijanych.Poniższy przykład ilustruje modyfikację istniejącego przycisku w CToolBarCtrl obiekt:

    TBBUTTONINFO tbi;
    
    tbi.dwMask = TBIF_STYLE;
    tbi.cbSize = sizeof(TBBUTTONINFO);
    m_ToolBarCtrl.GetButtonInfo(0, &tbi);
    tbi.fsStyle |= TBSTYLE_DROPDOWN;
    m_ToolBarCtrl.SetButtonInfo(0, &tbi);
    
  3. Dodaj TBN_DROPDOWN klasy nadrzędnej obiektu narzędzi obsługi.

    ON_NOTIFY(TBN_DROPDOWN, IDC_TOOLBAR1, &CMyDialog::OnTbnDropDownToolBar1)
    
  4. Obsługi nowych wyświetlić menu podręczne właściwe.Poniższy kod demonstruje jedną metodę:

    void CMyDialog::OnTbnDropDownToolBar1(NMHDR* pNMHDR, LRESULT* pResult)
    {
       LPNMTOOLBAR pToolBar = reinterpret_cast<LPNMTOOLBAR>(pNMHDR);
       ClientToScreen(&(pToolBar->rcButton)); // TrackPopupMenu uses screen coords
    
       CMenu menu;
       VERIFY(menu.LoadMenu(IDR_MENU1));
       CMenu* pPopup = menu.GetSubMenu(0);
       if (NULL != pPopup)
       {
          pPopup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, 
             pToolBar->rcButton.left, pToolBar->rcButton.bottom, this);
       }
    
       *pResult = 0;
    }
    

Zobacz też

Informacje

Przy użyciu CToolBarCtrl

Koncepcje

Formanty (MFC)