Aracılığıyla paylaş


Bir Araç Çubuğu Denetiminde Açılır Düğmeler Kullanma

Standart basma düğmelerine ek olarak, araç çubuğunda açılan düğmeler de bulunabilir. Açılan düğme genellikle ekli bir aşağı okun varlığıyla gösterilir.

Dekont

Eklenen aşağı ok yalnızca TBSTYLE_EX_DRAWDDARROWS genişletilmiş stil ayarlanmışsa görünür.

Kullanıcı bu oka (veya ok yoksa düğmenin kendisine) tıkladığında, araç çubuğu denetiminin üst öğesine bir TBN_DROPDOWN bildirim iletisi gönderilir. Ardından bu bildirimi işleyebilir ve bir açılır menü görüntüleyebilirsiniz; Internet Explorer'ın davranışına benzer.

Aşağıdaki yordamda açılır menü içeren bir açılan araç çubuğu düğmesinin nasıl uygulandığı gösterilmektedir:

Açılan düğme uygulamak için

  1. Nesneniz CToolBarCtrl oluşturulduktan sonra aşağıdaki kodu kullanarak TBSTYLE_EX_DRAWDDARROWS stilini ayarlayın:

    m_ToolBarCtrl.SetExtendedStyle(TBSTYLE_EX_DRAWDDARROWS);
    
  2. Açılan düğmeler olacak yeni (InsertButton veya AddButtons) veya mevcut (SetButtonInfo) düğmeleri için TBSTYLE_DROPDOWN stilini ayarlayın. Aşağıdaki örnekte, nesnedeki mevcut bir düğmenin CToolBarCtrl değiştirilmesi gösterilmektedir:

    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. Araç çubuğu nesnesinin üst sınıfına bir TBN_DROPDOWN işleyicisi ekleyin.

    ON_NOTIFY(TBN_DROPDOWN, IDC_TOOLBAR1, &CMyDialog::OnTbnDropDownToolBar1)
    
  4. Yeni işleyicide uygun açılır menüyü görüntüleyin. Aşağıdaki kodda bir yöntem gösterilmektedir:

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

Ayrıca bkz.

CToolBarCtrl Kullanma
Denetimler