Mensagens WM_COMMAND
Enviado quando o usuário seleciona um item de comando em um menu, quando um controle envia uma mensagem de notificação para sua janela pai ou quando um pressionamento de tecla de acelerador é traduzido.
#define WM_COMMAND 0x0111
-
wParam
-
Para obter uma descrição desse parâmetro, consulte Comentários.
-
lParam
-
Para obter uma descrição desse parâmetro, consulte Comentários.
Se um aplicativo processar essa mensagem, ela deverá retornar zero.
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;
}
Exemplo das Amostras do Windows Classic no GitHub.
O uso dos parâmetros wParam e lParam é resumido aqui.
Código-fonte da Mensagem | wParam (palavra alta) | wParam (palavra baixa) | lParam |
---|---|---|---|
Menu | 0 | Identificador de menu (IDM_*) | 0 |
Acelerador | 1 | Identificador de acelerador (IDM_*) | 0 |
Control | Código de notificação definido pelo controle | Identificador do controle | Identificador da janela de controle |
Se um aplicativo habilitar um separador de menu, o sistema enviará uma mensagem WM_COMMAND com a palavra baixa do parâmetro wParam definido como zero quando o usuário selecionar o separador.
Se um menu for definido com um valor MENUINFO.dwStyle de MNS_NOTIFYBYPOS, WM_MENUCOMMAND será enviado em vez de WM_COMMAND.
Os pressionamentos de teclas de acelerador que selecionam itens no menu da janela são convertidos em mensagens WM_SYSCOMMAND.
Se ocorrer um pressionamento de teclas de acelerador que corresponda a um item de menu quando a janela que possui o menu for minimizada, nenhuma mensagem WM_COMMAND será enviada. No entanto, se ocorrer um pressionamento de teclas de acelerador que não corresponda a nenhum dos itens no menu da janela ou no menu da janela, uma mensagem WM_COMMAND será enviada, mesmo se a janela for minimizada.
Requisito | Valor |
---|---|
Cliente mínimo com suporte |
Windows 2000 Professional [somente aplicativos para desktop] |
Servidor mínimo com suporte |
Windows 2000 Server [somente aplicativos da área de trabalho] |
Cabeçalho |
|