Sdílet prostřednictvím


Pomocí rozevíracích tlačítek v ovládacím panelu nástrojů

Kromě standardní tlačítka, panel nástrojů můžete také mají rozevíracích tlačítek.Rozevírací tlačítko je obvykle označen přítomnost připojené dolů šipka.

[!POZNÁMKA]

Šipka dolů připojené se zobrazí, pouze pokud TBSTYLE_EX_DRAWDDARROWS rozšířené styl byl nastaven.

Když uživatel klepne na tuto šipku (nebo tlačítka,), pokud neexistuje žádné šipky TBN_DROPDOWN oznámení, je odeslána do nadřazeného ovládacího prvku toolbar.Potom zpracování oznámení a zobrazit rozbalovací nabídku; podobné chování aplikace Internet Explorer.

Následující postup ukazuje, jak implementovat rozevírací tlačítko s rozbalovací nabídky:

Rozevírací tlačítko implementovat

  1. Jednou vaše CToolBarCtrl objekt byl vytvořen, nastavte TBSTYLE_EX_DRAWDDARROWS styl pomocí následujícího kódu:

    m_ToolBarCtrl.SetExtendedStyle(TBSTYLE_EX_DRAWDDARROWS);
    
  2. Nastavit TBSTYLE_DROPDOWN styl pro všechny nové (InsertButton nebo AddButtons) nebo existující (SetButtonInfo) tlačítka, která bude rozevíracích tlačítek.Následující příklad ukazuje úprava existující tlačítko v CToolBarCtrl objekt:

    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. Přidat TBN_DROPDOWN Obsluha nadřazené třídy objektu panelu nástrojů.

    ON_NOTIFY(TBN_DROPDOWN, IDC_TOOLBAR1, &CMyDialog::OnTbnDropDownToolBar1)
    
  4. V nové zpracování zobrazte příslušné místní nabídku.Následující kód ukazuje jeden způsob:

    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;
    }
    

Viz také

Referenční dokumentace

Pomocí CToolBarCtrl

Koncepty

Ovládací prvky (MFC)