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
Nesneniz
CToolBarCtrl
oluşturulduktan sonra aşağıdaki kodu kullanarak TBSTYLE_EX_DRAWDDARROWS stilini ayarlayın:m_ToolBarCtrl.SetExtendedStyle(TBSTYLE_EX_DRAWDDARROWS);
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);
Araç çubuğu nesnesinin üst sınıfına bir TBN_DROPDOWN işleyicisi ekleyin.
ON_NOTIFY(TBN_DROPDOWN, IDC_TOOLBAR1, &CMyDialog::OnTbnDropDownToolBar1)
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.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin