WM_SYSCOMMAND
A window
receives this message when the user chooses a command from the window
menu (also known as the System menu or Control menu) or when the user chooses
the Maximize button or Minimize button.
WM_SYSCOMMAND
uCmdType = wParam; // type of system command requested
xPos = LOWORD(lParam); // horizontal postion, in screen
coordinates
yPos = HIWORD(lParam); // vertical postion, in screen coordinates
Parameters
uCmdType
Specifies the
type of system command requested. This can be one of these values:
Value |
Meaning |
SC_CLOSE |
Closes the
window. |
SC_CONTEXTHELP |
Changes the
cursor to a question mark with a pointer. If the user then clicks a control
in the dialog box, the control receives a WM_HELP message. |
SC_DEFAULT |
Selects the
default item; the user double-clicked the window menu. |
SC_HOTKEY |
Activates
the window associated with the application-specified hot key. The low-order
word of lParam identifies the window to activate. |
SC_HSCROLL |
Scrolls
horizontally. |
SC_KEYMENU |
Retrieves
the window menu as a result of a keystroke. |
SC_MAXIMIZE
(or SC_ZOOM) |
Maximizes
the window. |
SC_MINIMIZE
(or SC_ICON) |
Minimizes
the window. |
SC_MONITORPOWER |
Windows
95 only: Sets the state of the
display. This command supports devices that have power-saving features, such
as a battery-powered personal computer. |
SC_MOUSEMENU |
Retrieves
the window menu as a result of a mouse click. |
SC_MOVE |
Moves the
window. |
SC_NEXTWINDOW |
Moves to
the next window. |
SC_PREVWINDOW |
Moves to
the previous window. |
SC_RESTORE |
Restores
the window to its normal position and size. |
SC_SCREENSAVE |
Executes
the screen saver application specified in the [boot] section of the
SYSTEM.INI file. |
SC_SIZE |
Sizes the
window. |
SC_TASKLIST |
Executes or
activates Windows Task Manager. |
SC_VSCROLL |
Scrolls
vertically. |
xPos
Specifies the
horizontal position of the cursor, in screen coordinates, if a window
menu command is chosen with the mouse. Otherwise, the xPos parameter is
not used.
yPos
Specifies the
vertical position of the cursor, in screen coordinates, if a window menu
command is chosen with the mouse. This parameter is -1 if the command is chosen using a system accelerator,
or zero if using a mnenomic.
Return Values
An
application should return zero if it processes this message.
Remarks
The DefWindowProc
In
WM_SYSCOMMAND messages, the four low-order bits of the uCmdType parameter
are used internally by Windows. To obtain the correct result when testing the
value of uCmdType, an application must combine the value 0xFFF0 with the
uCmdType value by using the bitwise AND operator.
The menu
items in a window menu can be modified by using the GetSystemMenu
An
application can carry out any system command at any time by passing a
WM_SYSCOMMAND message to DefWindowProc. Any WM_SYSCOMMAND messages not
handled by the application must be passed to DefWindowProc. Any command
values added by an application must be processed by the application and cannot
be passed to DefWindowProc.
Accelerator
keys that are defined to choose items from the window menu are
translated into WM_SYSCOMMAND messages; all other accelerator keystrokes are
translated into WM_COMMAND messages.
See Also