WM_COMMAND message
Applies to: desktop apps only
Sent when the user selects a command item from a menu, when a control sends a notification message to its parent window, or when an accelerator keystroke is translated.
#define WM_COMMAND 0x0111
Parameters
- wParam
-
For a description of this parameter, see Remarks.
- lParam
-
For a description of this parameter, see Remarks.
Return value
If an application processes this message, it should return zero.
Remarks
Use of the wParam and lParam parameters are summarized here.
| Message Source | wParam (high word) | wParam (low word) | lParam |
|---|---|---|---|
| Menu | 0 | Menu identifier (IDM_*) | 0 |
| Accelerator | 1 | Accelerator identifier (IDM_*) | 0 |
| Control | Control-defined notification code | Control identifier | Handle to the control window |
Menus
If an application enables a menu separator, the system sends a WM_COMMAND message with the low-word of the wParam parameter set to zero when the user selects the separator.
If a menu is defined with a MENUINFO.dwStyle value of MNS_NOTIFYBYPOS, WM_MENUCOMMAND is sent instead of WM_COMMAND.
Accelerators
Accelerator keystrokes that select items from the window menu are translated into WM_SYSCOMMAND messages.
If an accelerator keystroke occurs that corresponds to a menu item when the window that owns the menu is minimized, no WM_COMMAND message is sent. However, if an accelerator keystroke occurs that does not match any of the items in the window's menu or in the window menu, a WM_COMMAND message is sent, even if the window is minimized.
Requirements
|
Minimum supported client | Windows 2000 Professional |
|---|---|
|
Minimum supported server | Windows 2000 Server |
|
Header |
|
See also
Send comments about this topic to Microsoft
Build date: 2/3/2012
//
// When orders are scanned, we simulate the OK button click
// so that the user can automatically move to the next screen
//
WPARAM wParam = MAKEWPARAM( IDC_OK, BN_CLICKED );
LPARAM lParam = (LPARAM)GetDlgItem(IDC_OK);
BOOL bval = ::PostMessage(m_hWnd, WM_COMMAND, wParam, lParam);
==
Took a bit of poking around to figure out that m_hWnd worked but not NULL.
--Ajay
- 9/16/2011
- Ajay S. Ramachandran
WM_COMMAND = &H111 ; REM this is BASIC style
WM_COMMAND = 0x111 // this is for those writing in C/C++
http://blogs.msdn.com/oldnewthing/archive/2006/03/02/542115.aspx
- 8/21/2009
- Matteo Italia
- 8/21/2009
- Matteo Italia