winuser.h

Mensaje WM_SYSCOMMAND

Definición

WM_SYSCOMMAND
uCmdType = wParam;        // tipo de comando de sistema pedido
xPos = LOWORD(lParam);    // posición horizontal, en coordenadas de pantalla
yPos = HIWORD(lParam);    // posición vertical, en coordenadas de pantalla

Una ventana recibe este mensaje cuando el usuario elige un comando desde el menú de ventana (también conocido como menú de sistema o de control) o cuando el usuario pulsa el botón de maximizar o minimizar.

Descripción

uCmdType: indica el tipo de comando de sistema pedido. Puede ser uno de los siguientes valores:

Valor Significado
SC_CLOSE Cierra la ventana.
SC_CONTEXTHELP Cambia el cursor al signo de interrogación con un puntero. Si el usuario hace click en un control en el cuadro de diálogo, el control recibirá un mensaje WM_HELP.
SC_DEFAULT Selecciona el elemento por defecto; el usuario hizo doble click en el menú de sistema.
SC_HOTKEY Activa la ventana asociada con la acción especificada en el "hot key". La palabra de menor peso del parámetro lParam identifica la ventana a activar.
SC_HSCROLL Desplaza el contenido de la ventana horizontalmente.
SC_KEYMENU Recupera el menú del sistema como resultado de la pulsación de una tecla.
SC_MAXIMIZE
(o SC_ZOOM)
Maximiza la ventana.
SC_MINIMIZE
(o SC_ICON)
Minimiza la ventana.
SC_MONITORPOWER Sólo para Windows 95: ajusta el estado del monitor. Este comando soporta dispositivos que tengan propiedades de ahorro de energía, como las baterías de un ordenador portátil.
SC_MOUSEMENU Recupera el menú del sistema como resultado de un click del ratón.
SC_MOVE Mueve la ventana.
SC_NEXTWINDOW Cambia a la siguiente ventana.
SC_PREVWINDOW Cambia a la ventana anterior.
SC_RESTORE Recupera el tamaño y posición normales de la ventana.
SC_SCREENSAVE Ejecuta la aplicación de salva pantallas especificada en la sección [boot] del fichero SYSTEM.INI.
SC_SIZE Cambia el tamaño de la ventana.
SC_TASKLIST Ejecuta o activa el gestor de tareas de Windows.
SC_VSCROLL Desplaza el contenido de la ventana verticalmente.

xPos: indica la posición horizontal del cursor en coordenadas de pantalla, si se eligió un comando del menú del sistema con el ratón. De otro modo, este parámetro no se usa.

yPos: indica la posición vertical del cursor en coordenadas de pantalla, si se eligió un comando del menú del sistema con el ratón. Este parámetro es -1 si el comando fue elegido mediante un acelerador o cero si fue usando un mnemónico.

Valor de retorno

Una aplicación que procese este mensaje debe retornar con cero.

Observaciones

La función DefWindowProc ejecuta las acciones predefinidas de las peticiones del menú del sistema de la tabla anterior.

En los mensajes WM_SYSCOMMAND, los cuatro bits de menor peso del parámetro uCmdType se usan internamente por Windows. Para obtener el resultado correcto cuando se comprueba el valor de uCmdType, la aplicación debe combinar el valor 0xFFF0 con el valor de uCmdType usando el operador de bits AND.

Los elementos del menú de sistema pueden ser modificados usando las funciones GetSystemMenu, AppendMenu, InsertMenu, ModifyMenu, InsertMenuItem y SetMenuItem. Las aplicaciones que modifiquen el menú del sistema deben procesar los mensajes WM_SYSCOMMAND.

Una aplicación puede llevar a cabo cualquier comando del sistema en cualquier momento pasando un mensaje WM_SYSCOMMAND a la función DefWindowProc. Cualquier mensaje WM_SYSCOMMAND no manipulado por la aplicación debe ser pasado a la función DefWindowProc. Cualquier comando nuevo añadido por la aplicación debe ser procesado por ella y nunca debe ser pasado a la función DefWindowProc.

Las teclas de aceleración que están definidas para elegir elementos del menú del sistema son traducidas a mensajes WM_SYSCOMMAND; el resto de las teclas de aceleración se traducen a mensajes WM_COMMAND.