我正在编写一个例程,为我的Windows Mobile 5应用程序(C ++ / MFC)中的任何菜单项提供用户可定义的键盘快捷方式。为此,我将获取所有可用的菜单命令ID,并使用CWnd :: PostMessage(WM_COMMAND,MyMenuID)将其发布到应用程序。我使用这种技术在其他地方对线程间通信有很好的效果,但不能使用菜单命令ID。任何想法为什么这不起作用。该应用程序是文档视图,我已尝试发布到CMainFrame和CView派生的窗口。我可以写一个上帝糟糕的开关声明,但我觉得发布消息应该有效。

编辑:好的,我尝试过很多东西,包括来自这篇文章,无济于事。现在是丑陋的开关声明,如果我找到更好的东西,我会再次更新。

有帮助吗?

解决方案

我能想到的唯一原因是消息是错误的窗口。不要忘记并非所有菜单命令始终都由特定窗口处理。某些菜单命令(如Cut)通常由视图窗口处理。其他的由框架窗口处理,有些可能由应用程序对象处理。

希望这有帮助。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top