다음을 통해 공유


WM_MENUSELECT 메시지

사용자가 메뉴 항목을 선택할 때 메뉴의 소유자 창으로 전송됩니다.

#define WM_MENUSELECT                   0x011F

매개 변수

wParam

낮은 순서의 단어는 메뉴 항목 또는 하위 메뉴 인덱스를 지정합니다. 선택한 항목이 명령 항목인 경우 이 매개 변수에는 메뉴 항목의 식별자가 포함됩니다. 선택한 항목이 드롭다운 메뉴 또는 하위 메뉴를 여는 경우 이 매개 변수는 주 메뉴에 있는 드롭다운 메뉴 또는 하위 메뉴의 인덱스를 포함하고 lParam 매개 변수에는 주 메뉴에 대한 핸들이 포함됩니다. GetSubMenu 함수를 사용하여 메뉴 핸들을 드롭다운 메뉴 또는 하위 메뉴로 가져옵니다.

상위 단어는 하나 이상의 메뉴 플래그를 지정합니다. 이 매개 변수는 다음 값 중 하나 이상일 수 있습니다.

가치 Meaning
MF_BITMAP
0x00000004L
항목에 비트맵이 표시됩니다.
MF_CHECKED
0x00000008L
항목이 선택되어 있습니다.
MF_DISABLED
0x00000002L
항목을 사용할 수 없습니다.
MF_GRAYED
0x00000001L
항목이 회색으로 표시됩니다.
MF_HILITE
0x00000080L
항목이 강조 표시됩니다.
MF_MOUSESELECT
0x00008000L
항목이 마우스로 선택됩니다.
MF_OWNERDRAW
0x00000100L
항목은 소유자가 그린 항목입니다.
MF_POPUP
0x00000010L
항목이 드롭다운 메뉴 또는 하위 메뉴를 엽니다.
MF_SYSMENU
0x00002000L
항목이 창 메뉴에 포함되어 있습니다. lParam 매개 변수는 메시지와 연결된 메뉴에 대한 핸들을 포함합니다.

lParam

주 메뉴에 대한 핸들입니다.

반환 값

애플리케이션이 이 메시지를 처리하는 경우 0을 반환해야 합니다.

비고

이 메시지는 사용자가 열려 있는 메뉴에서 메뉴 항목을 선택할 때 일반적으로 마우스 오버 또는 키보드 탐색을 통해 메뉴의 소유자 창으로 전송됩니다. 메뉴가 닫혀 있으면 사용자가 최상위 메뉴 항목 위로 마우스를 이동할 때 이 메시지가 전송되지 않습니다. 이 메시지는 사용자가 최상위 메뉴 항목을 클릭하거나 ALT 키를 눌러 메뉴를 연 후에만 전송됩니다.

중요합니다

사용자가 메뉴 항목을 클릭하거나 Enter 키를 눌러 선택한 메뉴 항목을 호출하면 메뉴에 대한 MENUINFO 구조체의 dwStyle 멤버 값에 따라 WM_COMMAND 또는 WM_MENUCOMMAND 메시지가 창으로 전송됩니다. 선택한 명령이 호출될 때 해당 메시지를 사용하여 작업을 수행합니다.

wParam의 상위 단어에 0xFFFF 포함되어 있고 lParam 매개 변수에 NULL이 포함된 경우 시스템에서 메뉴를 닫습니다.

이 값은 (UINT) HIWORD(wParam)로 지정되므로 wParam의 상위 단어에 -1 값을 사용하지 마세요. 0xFFFF 서명된 컨텍스트에서 -1 해석될 수 있지만 값이 0xFFFF 경우 UINT로 캐스팅되므로 -1이 아닌 0x0000FFFF 해석됩니다.

예를 들어 이 코드는 -1이 아닌 0xFFFF 확인합니다.

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;
}

요구 사항

요구 사항 가치
지원되는 최소 클라이언트
Windows 2000 Professional [데스크톱 앱만 해당]
지원되는 최소 서버
Windows 2000 Server [데스크톱 앱만 해당]
Header
Winuser.h(Windows.h 포함)

참고하십시오

참조

GetSubMenu

HIWORD

LOWORD

개념

키보드 가속기