c++ - MFC:通过发布消息触发菜单操作需要什么?

标签 c++ visual-studio visual-c++ mfc

我有一个与功能相关的菜单项。

BEGIN_MESSAGE_MAP(CMyDoc, CDocument)
    ON_COMMAND(ID_FILE_ACTION, &CMyDoc::OnFileAction)

在我的代码中的某个地方,我尝试通过发布类似消息来运行此函数

AfxGetMainWnd()->PostMessage(WM_COMMAND, 0, ID_FILE_ACTION);

但是什么也没发生。

最佳答案

WM_COMMAND message 的菜单项 ID位于 wParam低字中,不在 lParam 中! (lParam 应该为零。)所以,试试这个:

    AfxGetMainWnd()->PostMessage(WM_COMMAND, MAKEWPARAM(ID_FILE_ACTION, 0), 0);

关于c++ - MFC:通过发布消息触发菜单操作需要什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61489010/

相关文章:

c# - 如何使用MediaPlayer C#停止声音

c++ - Visual Studio,在数组声明中使用#define 常量时出现错误 : expected a ']' ,

c++ - C++ 静态库可以链接到共享库吗?

c++ - 创建一个简单的 'hello world' 并将其与 2 个预编译对象链接在一起

c++ - VC++ 编译器/源字符集 :utf-8 doesn't work

c++ - C++ 中引用的引用有什么用?

visual-studio - cmake Visual Studio项目子集

c++ - 如何告诉 Inline ASM 变量是十六进制的

c++ - HEAP 上的数组分配(单独分配与......连续分配?)

c++ - 如何创建一个新的字符串数组