如何通过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"软键,当在创建子对话框之后放置该行时,这些软键显示为预期的并且效果很好。

再次感谢