Aracılığıyla paylaş


Açılır Düğmeleri Nasıl Kullanılır

Açılır menü düğmesi, kullanıcılara bir seçenek listesi sunabilir. Bu düğme stilini oluşturmak için BTNS_DROPDOWN stilini belirtin (ortak denetimlerin önceki sürümleriyle uyumluluk için TBSTYLE_DROPDOWN olarak da adlandırılır). Açılır düğmeyi bir ok ile göstermek için, TB_SETEXTENDEDSTYLE mesajını göndererek TBSTYLE_EX_DRAWDDARROWS araç çubuğu stilini de ayarlamanız gerekir.

Aşağıdaki çizimde bağlam menüsünün açık olduğu ve dosyaların listesinin gösterildiği bir açılan "Aç" düğmesi gösterilmektedir. Bu örnekte araç çubuğunda TBSTYLE_EX_DRAWDDARROWS stili vardır.

Üç araç çubuğu öğesinin simgelerle temsil edildiği bir iletişim kutusunun ekran görüntüsü , bunlardan birinde genişletilmiş bir açılır ok ve üç öğeden oluşan bir bağlam menüsü.

Aşağıdaki çizimde, bu kez TBSTYLE_EX_DRAWDDARROWS stili olmadan aynı araç çubuğu gösterilmektedir.

Önceki bir iletişim kutusunun ekran görüntüsü, ancak bağlam menüsüne sahip simgede açılan ok yok.

Kullanıcılar BTNS_DROPDOWN stilini kullanan bir araç çubuğu düğmesine tıkladığında, araç çubuğu denetimi üst penceresine bir TBN_DROPDOWN bildirim kodu gönderir.

Bilmeniz gerekenler

Teknolojileri

Önkoşullar

  • C/C++
  • Windows Kullanıcı Arayüzü Programlama

Talimatlar

Açılır Düğme ile Etkileşim

Aşağıdaki kod örneği, bir uygulamanın araç çubuğu denetiminde açılır bir düğmeyi nasıl destekleyebileceğini gösterir.

BOOL DoNotify(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{

    #define lpnm   ((LPNMHDR)lParam)
    #define lpnmTB ((LPNMTOOLBAR)lParam)

    switch(lpnm->code)
    {
        case TBN_DROPDOWN:
        {
            // Get the coordinates of the button.
            RECT rc;
            SendMessage(lpnmTB->hdr.hwndFrom, TB_GETRECT, (WPARAM)lpnmTB->iItem, (LPARAM)&rc);

            // Convert to screen coordinates.            
            MapWindowPoints(lpnmTB->hdr.hwndFrom, HWND_DESKTOP, (LPPOINT)&rc, 2);                         
        
            // Get the menu.
            HMENU hMenuLoaded = LoadMenu(g_hinst, MAKEINTRESOURCE(IDR_POPUP)); 
         
            // Get the submenu for the first menu item.
            HMENU hPopupMenu = GetSubMenu(hMenuLoaded, 0);

            // Set up the pop-up menu.
            // In case the toolbar is too close to the bottom of the screen, 
            // set rcExclude equal to the button rectangle and the menu will appear above 
            // the button, and not below it.
         
            TPMPARAMS tpm;
         
            tpm.cbSize    = sizeof(TPMPARAMS);
            tpm.rcExclude = rc;
         
            // Show the menu and wait for input. 
            // If the user selects an item, its WM_COMMAND is sent.
         
            TrackPopupMenuEx(hPopupMenu, 
                             TPM_LEFTALIGN | TPM_LEFTBUTTON | TPM_VERTICAL, 
                             rc.left, rc.bottom, g_hwndMain, &tpm);

            DestroyMenu(hMenuLoaded);
         
        return (FALSE);
      
        }
    }
   
    return FALSE;
}

Araç Çubuğu Denetimlerini Kullanma

Windows ortak denetimler tanıtımı (CppWindowsCommonControls)