영어로 읽기

다음을 통해 공유


WM_COMMAND 메시지

사용자가 메뉴에서 명령 항목을 선택할 때, 컨트롤이 부모 창에 알림 메시지를 보내거나 액셀러레이터 키 입력이 번역될 때 전송됩니다.

#define WM_COMMAND                      0x0111

매개 변수

wParam

이 매개 변수에 대한 설명은 비고를 참조하세요.

lParam

이 매개 변수에 대한 설명은 비고를 참조하세요.

반환 값

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

예시

BOOL AboutDlg (
    HWND hDlg, 
    UINT message, 
    WPARAM wParam, 
    LPARAM lParam)
{
    BOOL bRet = FALSE;
    
    switch (message) 
    {
        case WM_INITDIALOG:
            bRet = TRUE;
            break;

        case WM_COMMAND:
            if (wParam == IDOK ||
                wParam == IDCANCEL) 
            {
                EndDialog(hDlg, TRUE);
                bRet = TRUE;
            }
            break;
    }

    return bRet;
}

GitHub의 Windows 클래식 샘플에서 가져온 예제입니다.

설명

wParam 및 lParam 매개 변수의 사용은 여기에 요약되어 있습니다.

메시지 원본 wParam(상위 단어) wParam(소문자) lParam
메뉴 0 메뉴 식별자(IDM_*) 0
가속기 1 가속기 식별자(IDM_*) 0
제어 컨트롤 정의 알림 코드 컨트롤 식별자 컨트롤 창에 대한 핸들

애플리케이션에서 메뉴 구분 기호를 사용하도록 설정하면 사용자가 구분 기호를 선택할 때 시스템에서 wParam 매개 변수의 하위 단어가 0으로 설정된 WM_COMMAND 메시지를 보냅니다.

메뉴가 MENUINFO.dwStyle 값이 MNS_NOTIFYBYPOS 정의되면 WM_COMMAND 대신 WM_MENUCOMMAND 전송됩니다.

바로 연결

창 메뉴에서 항목을 선택하는 액셀러레이터 키 입력은 WM_SYSCOMMAND 메시지로 변환됩니다.

메뉴를 소유한 창이 최소화될 때 메뉴 항목에 해당하는 액셀러레이터 키 입력이 발생하면 WM_COMMAND 메시지가 전송되지 않습니다. 그러나 창 메뉴 또는 창 메뉴의 항목과 일치하지 않는 액셀러레이터 키 입력이 발생하면 창이 최소화되더라도 WM_COMMAND 메시지가 전송됩니다.

요구 사항

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

추가 정보

참조

HIWORD

LOWORD

개념

메뉴