如何通过MFC在Windows Mobile 6中将软键与基于CDialog的应用程序一起使用?
时间:2020-03-06 14:27:55 来源:igfitidea点击:
如何通过MFC在Windows Mobile 6中将软键与基于CDialog的应用程序一起使用?
我有一个正在使用的基于CDialog的Windows Mobile 6(触摸屏)Professional应用程序。
WM6 Professional中基于CDialog的应用程序的默认行为是默认情况下不使用任何软键...我想将这些软键映射到将IDOK和IDCANCEL发送到我的主对话框类的"取消"和"确定"功能。
我一直在尝试使用CCommandBar,但是运气不佳,SHCreateMenuBar也不适合我。
有人有如何使它工作的示例吗?
谢谢。
解决方案
CCommandBar对我们来说有什么"不起作用"?我们应该能够将CCommandBar成员添加到对话框类中,然后在DIalog的InitDialog中,在命令栏上调用Create和InsertMenuBar,如下所示:
m_cmdBar.Create(this); m_cmdBar.InsertMenuBar(IDR_MENU_RESRC_ID);
菜单资源可能看起来像这样:
IDR_MENU_RESRC_ID MENU DISCARDABLE BEGIN MENUITEM "OK", IDOK MENUITEM "Cancel", IDCANCEL END
非常感谢...我为此而发疯...
代码完全按预期工作...
最初,我使用它并获得相同的结果,除了SIP输入按钮外,软键区域为空白。
经过一个小时左右的调试,我尝试将这两行代码放在OnInitDIalog()的末尾,它可以正常工作:)
我的问题结局是,在我的OnIitDialog()中,我正在创建一些子对话框。当我在创建子对话框之前放置CCommandBar.InsertMenuBar()时,没有得到" ok"或者" Cancel"软键,当在创建子对话框之后放置该行时,这些软键显示为预期的并且效果很好。
再次感谢