更新时间:2023-10-16 20:50
WM_COMMAND,程序代码,在窗口菜单程序中使用。
WM_COMMAND:
窗口菜单:
HIWORD(wParam): 0
lParam: 0
如果这个消息是由子窗口控件产生,如button产生则:
LOWORD(wParam): 控件ID
HIWORD(wParam): 通知码
对于菜单 和加速键来说,lParam为0,只有控件此项才非0。命令ID也就是资源脚本中定义的菜单项的命令ID或者加速键的命令ID;菜单的通知码为0;加速键 的通知码为1。
通过参数,可以区分这个消息的来源是来自于控件,快捷键还是菜单。
WM_COMMAND (上文翻译)
The WM_COMMAND message is 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.
当用户从菜单选中一个命令项目、当一个控件发送通知消息给去父窗口或者按下一个快捷键将发送 WM_COMMAND 消息
A window receives this message through its WindowProc function.
窗口通过WindowProc函数收到此消息。
LRESULT CALLBACK WindowProc
HWND hwnd // handle to window
UINT uMsg // WM_COMMAND
WPARAM wParam // notification code and identifier
LPARAM lParam // handle to control (HWND);
LRESULT CALLBACK WindowProc
HWND hwnd // 窗口句柄
UINT uMsg // WM_COMMAND
WPARAM wParam // notification code and identifier 消息
LPARAM lParam // handle to control (HWND) 控件id;
Parameters wParam The high-order word specifies the notification code if the message is from a control.如果信息是从控件传来,参数wParam高位字指定通知代码。
If the message is from an accelerator, this value is 1.如果信息是从一个加速器传来,这个值是1 。
If the message is from a menu, this value is zero.
如果信息是从菜单中传来,这个值是零。 The low-order word specifies the identifier of the menu item, control, or accelerator.低位字的标识符指定的菜单项,控件或加速器。
lParam Handle to the control sending the message if the message is from a control.
如果信息是从控件传来,则 lParam是控件的句柄。
Otherwise, this parameter is NULL.否则,这个参数是无效的。
Return ValuesIf an application processes this message, it should return zero.
返回ValuesIf应用程序这个讯息,它应返回零。
RemarksAccelerator keystrokes that select items from the window menu are translated into WM_SYSCOMMAND messages. RemarksAccelerator击键的选择项目从窗口菜单化为WM_SYSCOMMAND消息。
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.如果出现一个加速器按键对应的菜单项时的窗口,拥有菜单最小,没有WM_COMMAND发送邮件。 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.但是,如果出现一个加速器按键不匹配的任何物品在窗口的菜单或窗口菜单,一个WM_COMMAND消息发送,即使是最小化的窗口。
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.如果应用程序使菜单分离,系统发出了一个WM_COMMAND消息的低字的wParam参数设置为0时,用户选择的分隔符。
Windows 98, Windows 2000: If a menu is defined with a MENUINFO.dwStyle value of MNS_NOTIFYBYPOS, WM_MENUCOMMAND is sent instead of WM_COMMAND . Windows 98中, Windows 2000中:如果一个菜单的定义与MENUINFO.dwStyle价值MNS_NOTIFYBYPOS , WM_MENUCOMMAND发送不是WM_COMMAND 。
Requirements Windows NT/2000: Requires Windows NT 3.1 or later.要求视窗 NT/2000 :需要Windows NT 3.1或更高版本。
Windows 95/98: Requires Windows 95 or later. 视窗95/98 :需要Windows 95或更新版本。
Header: Declared in Winuser.h; include Windows.h. 标题:中宣布的Winuser.h ;包括Windows.h 。
See AlsoMenus Overview, Menu Messages, HIWORD , LOWORD , MENUINFO , WM_MENUCOMMAND , WM_SYSCOMMAND查看AlsoMenus概况,菜单消息, HIWORD , LOWORD , MENUINFO , WM_MENUCOMMAND , WM_SYSCOMMAND
WM_COMMAND是X11核心协议保留的预定义atom名称之一。X11核心协议不规定具体语义。