在Windows Mobile中使用PostMessage模拟菜单选择

时间:2020-03-06 15:01:54  来源:igfitidea点击:

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

编辑:好的,我尝试了很多事情,包括这篇文章中的建议,都无济于事。这是现在的丑陋开关声明,如果我发现更好的地方,我会再次更新。

解决方案

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

希望这可以帮助。