共用方式為


WM_COMMAND訊息

當使用者從功能表選取命令專案、控制項將通知訊息傳送至其父視窗,或翻譯快捷鍵時傳送。

#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
控制 控件定義的通知程序代碼 控制標識碼 控件視窗的句柄

如果應用程式啟用功能表分隔符,當用戶選取分隔符時,系統會傳送WM_COMMAND訊息,其中 wParam 參數的低字設定為零。

如果功能表是以 MENUINFO.dwStyle 定義MNS_NOTIFYBYPOS則會傳送WM_MENUCOMMAND而不是WM_COMMAND。

加速器

從視窗功能表選取專案的快速鍵動作會轉譯成 WM_SYSCOMMAND 訊息。

如果快捷鍵擊發生在最小化擁有功能表的視窗時對應至功能表項,則不會 傳送任何WM_COMMAND 訊息。 不過,如果發生快捷鍵擊鍵不符合視窗功能表或視窗功能表中的任何專案, 則會傳送WM_COMMAND 訊息,即使視窗最小化也一樣。

需求

需求
最低支援的用戶端
Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器
Windows 2000 Server [僅限傳統型應用程式]
頁首
Winuser.h (包括 Windows.h)

另請參閱

參考

HIWORD

LOWORD

概念

功能表