Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Selain tombol dorong standar, toolbar juga dapat memiliki tombol drop-down. Tombol drop-down biasanya ditunjukkan dengan adanya panah bawah yang dilampirkan.
Nota
Panah bawah yang dilampirkan hanya akan muncul jika gaya diperluas TBSTYLE_EX_DRAWDDARROWS telah diatur.
Ketika pengguna mengklik panah ini (atau tombol itu sendiri, jika tidak ada panah), pesan pemberitahuan TBN_DROPDOWN dikirim ke induk kontrol toolbar. Anda kemudian dapat menangani pemberitahuan ini dan menampilkan menu pop-up; mirip dengan perilaku Internet Explorer.
Prosedur berikut mengilustrasikan cara menerapkan tombol toolbar drop-down dengan menu pop-up:
Untuk mengimplementasikan tombol tarik-turun
Setelah objek Anda
CToolBarCtrl
dibuat, atur gaya TBSTYLE_EX_DRAWDDARROWS, menggunakan kode berikut:m_ToolBarCtrl.SetExtendedStyle(TBSTYLE_EX_DRAWDDARROWS);
Atur gaya TBSTYLE_DROPDOWN untuk tombol baru (InsertButton atau AddButtons) atau yang sudah ada (SetButtonInfo) yang akan menjadi tombol drop-down. Contoh berikut menunjukkan pengubahan tombol yang sudah ada dalam
CToolBarCtrl
objek:TBBUTTONINFO tbi; tbi.dwMask = TBIF_STYLE; tbi.cbSize = sizeof(TBBUTTONINFO); m_ToolBarCtrl.GetButtonInfo(0, &tbi); tbi.fsStyle |= TBSTYLE_DROPDOWN; m_ToolBarCtrl.SetButtonInfo(0, &tbi);
Tambahkan handler TBN_DROPDOWN ke kelas induk objek toolbar.
ON_NOTIFY(TBN_DROPDOWN, IDC_TOOLBAR1, &CMyDialog::OnTbnDropDownToolBar1)
Di handler baru, tampilkan menu popup yang sesuai. Kode berikut menunjukkan satu metode:
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; }