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[데스크톱 앱만] |
헤더 |
|