WM _ 命令消息

当用户从菜单中选择命令项、控件向其父窗口发送通知消息或翻译快捷键击键时发送。

#define WM_COMMAND                      0x0111

参数

wParam

有关此参数的说明,请参阅 "备注"。

lParam

有关此参数的说明,请参阅 "备注"。

返回值

如果应用程序处理此消息,则它应返回零。

示例

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;
}

示例取自 GitHub Windows 经典示例

备注

此处汇总了 wParamlParam 参数的用法。

消息源 wParam (高位字) wParam (低字) lParam
菜单 0 (IDM) 的菜单标识符 _ * 0
加速器 1 IDM) (加速器标识符 _ * 0
控件 控件定义的通知代码 控件标识符 控制窗口的句柄

如果应用程序启用了菜单分隔符,则当用户选择分隔符时,系统会将 wParam 参数设置为零的 WM _ 命令 消息发送到零。

如果使用 MNS _ NOTIFYBYPOSMENUINFO. dwStyle值定义了菜单,则会发送 wm _ MENUCOMMAND ,而不是发送 wm _ 命令

加速键

从 "窗口" 菜单中选择项的快捷键会转换为 WM _ SYSCOMMAND 消息。

如果当拥有菜单的窗口最小化时,出现与菜单项对应的快捷键击键,则不发送任何 WM _ 命令 消息。 但是,如果发生与窗口菜单或 "窗口" 菜单中的任何项都不匹配的加速键击键,则会发送一个 WM _ 命令 消息,即使窗口已最小化也是如此。

要求

要求
最低受支持的客户端
Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器
Windows 2000 Server [仅限桌面应用]
标头
winuser.h (包括 Windows .h)

请参阅

引用

HIWORD

LOWORD

概念

菜单