Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se envía cuando el usuario invoca un elemento de comando desde un menú, cuando un control envía un mensaje de notificación a su ventana primaria o cuando se traduce una pulsación de tecla de aceleración.
#define WM_COMMAND 0x0111
Parámetros
-
wParam
-
Para obtener una descripción de este parámetro, vea Comentarios.
-
lParam
-
Para obtener una descripción de este parámetro, vea Comentarios.
Valor devuelto
Si una aplicación procesa este mensaje, debe devolver cero.
Example
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;
}
Ejemplo tomado de ejemplos clásicos de Windows en GitHub.
Observaciones
Aquí se resume el uso de los parámetros wParam y lParam .
| Origen del mensaje | wParam (palabra alta) | wParam (palabra baja) | lParam |
|---|---|---|---|
| Menú | 0 | Identificador de menú (IDM_*) | 0 |
| Acelerador | 1 | Identificador del acelerador (IDM_*) | 0 |
| Supervisión | Código de notificación definido por el control | Identificador de control | Identificador de la ventana de control |
Menús
En la mayoría de los casos, este es el mensaje que se va a escuchar cuando un usuario invoca un comando en un menú. Sin embargo, si se define un menú con un valor MENUINFO.dwStyle de MNS_NOTIFYBYPOS, se envía WM_MENUCOMMAND en lugar de WM_COMMAND.
Si una aplicación habilita un separador de menús, el sistema envía un mensaje de WM_COMMAND con la palabra baja del parámetro wParam establecido en cero cuando el usuario selecciona el separador.
Aceleradores
Las pulsaciones de tecla del acelerador que seleccionan elementos del menú de la ventana se traducen en mensajes WM_SYSCOMMAND .
Si se produce una pulsación de tecla de aceleración que corresponde a un elemento de menú cuando se minimiza la ventana que posee el menú, no se envía ningún mensaje WM_COMMAND . Sin embargo, si se produce una pulsación de tecla de aceleración que no coincide con ninguno de los elementos del menú de la ventana o en el menú de la ventana, se envía un mensaje de WM_COMMAND , incluso si la ventana está minimizada.
Requisitos
| Requirement | Importancia |
|---|---|
| Cliente mínimo compatible |
Windows 2000 Professional [solo aplicaciones de escritorio] |
| Servidor mínimo compatible |
Windows 2000 Server [solo aplicaciones de escritorio] |
| Header |
|