WM_MENUSELECT iletisi

Kullanıcı bir menü öğesi seçtiğinde menünün sahip penceresine gönderilir.

#define WM_MENUSELECT                   0x011F

Parametreler

wParam

Düşük sıralı sözcük menü öğesini veya alt menü dizinini belirtir. Seçili öğe bir komut öğesiyse, bu parametre menü öğesinin tanımlayıcısını içerir. Seçili öğe bir açılan menü veya alt menü açarsa, bu parametre ana menüde açılan menünün veya alt menünün dizinini ve lParam parametresi ana menünün tutamacını içerir; Menü tutamacını açılan menüye veya alt menüye almak için GetSubMenu işlevini kullanın.

Yüksek sıralı sözcük bir veya daha fazla menü bayrağı belirtir. Bu parametre aşağıdaki değerlerden biri veya daha fazlası olabilir.

Değer Meaning
MF_BITMAP
0x00000004L
Öğe bir bit eşlem görüntüler.
MF_CHECKED
0x00000008L
Öğe işaretli.
MF_DISABLED
0x00000002L
Öğe devre dışı bırakıldı.
MF_GRAYED
0x00000001L
Öğe gri renktedir.
MF_HILITE
0x00000080L
Öğe vurgulanmış.
MF_MOUSESELECT
0x00008000L
Öğe fareyle seçilir.
MF_OWNERDRAW
0x00000100L
Öğe, sahip tarafından çizilmiş bir öğedir.
MF_POPUP
0x00000010L
Öğe bir açılan menü veya alt menü açar.
MF_SYSMENU
0x00002000L
Öğe pencere menüsünde yer alır. lParam parametresi, iletiyle ilişkilendirilmiş menünün tutamacını içerir.

lParam

Ana menünün tutamacı.

Dönüş değeri

Bir uygulama bu iletiyi işlerse sıfır döndürmelidir.

Açıklamalar

Bu ileti, kullanıcı genellikle fareyle veya klavyeyle gezinti yoluyla açık bir menüden bir menü öğesi seçtiğinde menünün sahip penceresine gönderilir. Menü kapatılırsa, kullanıcı fareyi üst düzey bir menü öğesinin üzerine taşıdığında bu ileti gönderilmez. Bu ileti yalnızca kullanıcı üst düzey bir menü öğesine tıklayarak veya ALT tuşuna basarak menü açıldıktan sonra gönderilir.

Önemli

Kullanıcı bir menü öğesine tıkladığında veya seçili menü öğesini çağırmak için Enter tuşuna bastığında, menünün MENUINFO yapısının dwStyle üyesinin değerine bağlı olarak pencereye bir WM_COMMAND veya WM_MENUCOMMAND iletisi gönderilir. Seçili komut çağrıldığında bir eylem gerçekleştirmek için bu iletileri kullanın.

wParam'ın yüksek sıralı sözcüğü 0xFFFF ve lParam parametresi NULL içeriyorsa, sistem menüyü kapatmıştır.

Bu değer (UINT) HIWORD(wParam) olarak belirtildiğinden, wParam'ın yüksek sıralı sözcüğü için -1 değerini kullanmayın. 0xFFFF imzalı bağlamlarda -1 olarak yorumlanabilir, ancak değer 0xFFFF ise, UINT'ye atama nedeniyle -1 değil, 0x0000FFFF olarak yorumlanır.

Örneğin, bu kod -1 değil 0xFFFF denetler:

case WM_MENUSELECT:
{
    UINT menuItem = LOWORD(wParam);
    UINT flags = HIWORD(wParam);
    HMENU hMenu = (HMENU)lParam;

    // Check for 0xFFFF, not -1.
    if (flags == 0xFFFF && hMenu == NULL) {
        // No menu item selected (menu closed).
        // ...
    }
    break;
}

Gereksinimler

Gereksinim Değer
Desteklenen en düşük düzeydeki istemci
Windows 2000 Professional [yalnızca masaüstü uygulamaları]
Desteklenen en düşük sunucu
Windows 2000 Server [yalnızca masaüstü uygulamaları]
Header
Winuser.h (Windows.h dahil)

Ayrıca bakınız

Referans

GetSubMenu

HIWORD

LOWORD

Kavramsal

Klavye Hızlandırıcıları