Araç çubuğu denetimi açılan düğmeleri kullanma
Standart basma düğmeleri ek olarak, bir araç çubuğu aşağı açılan düğme de sağlayabilirsiniz.Aşağı açılan düğme genellikle ekli aşağı okun varlığı tarafından gösterilir.
[!NOT]
Ekli aşağı ok yalnızca görünür TBSTYLE_EX_DRAWDDARROWS Genişletilmiş Stil ayarlanmış.
Kullanıcı tıklattığında bu oku (veya düğmesinin kendisini), ok yok, bir TBN_DROPDOWN toolbar denetiminin üst bildirim iletisi gönderilir.Bu bildirim işlemek ve açılır menüsünü görüntüler; Internet Explorer'ın davranışını benzer.
Aşağıdaki yordamı uygulamak açılır menüsüyle açılan araç çubuğu düğmesi verilmektedir:
Aşağı açılan düğme uygulamak için
Bir kez sizin CToolBarCtrl nesne oluşturuldu, set TBSTYLE_EX_DRAWDDARROWS , aşağıdaki kodu kullanarak stili:
m_ToolBarCtrl.SetExtendedStyle(TBSTYLE_EX_DRAWDDARROWS);
Set TBSTYLE_DROPDOWN yeni stil herhangi (InsertButton veya AddButtons) ya da var olan (SetButtonInfo) aşağı açılan düğme olacak düğmeler.Varolan bir düğmeyi değiştirme aşağıdaki örnekte gösterilmiştir bir CToolBarCtrl nesne:
TBBUTTONINFO tbi; tbi.dwMask = TBIF_STYLE; tbi.cbSize = sizeof(TBBUTTONINFO); m_ToolBarCtrl.GetButtonInfo(0, &tbi); tbi.fsStyle |= TBSTYLE_DROPDOWN; m_ToolBarCtrl.SetButtonInfo(0, &tbi);
Add bir TBN_DROPDOWN üst sınıf araç nesnesinin işleyicisine.
ON_NOTIFY(TBN_DROPDOWN, IDC_TOOLBAR1, &CMyDialog::OnTbnDropDownToolBar1)
Yeni işleyicisinde uygun açılır menüsünü görüntüler.Aşağıdaki kod, 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; }