Bagikan melalui


Menggunakan Tombol Drop-Down di Kontrol Bilah Alat

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

  1. Setelah objek Anda CToolBarCtrl dibuat, atur gaya TBSTYLE_EX_DRAWDDARROWS, menggunakan kode berikut:

    m_ToolBarCtrl.SetExtendedStyle(TBSTYLE_EX_DRAWDDARROWS);
    
  2. 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);
    
  3. Tambahkan handler TBN_DROPDOWN ke kelas induk objek toolbar.

    ON_NOTIFY(TBN_DROPDOWN, IDC_TOOLBAR1, &CMyDialog::OnTbnDropDownToolBar1)
    
  4. 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;
    }
    

Lihat juga

Menggunakan CToolBarctrl
Kontrol