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 傳統範例取得的範例 。
備註
此處摘要說明 wParam 和 lParam 參數的使用。
訊息來源 | 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 [僅限傳統型應用程式] |
頁首 |
|