Windows mobile 如何通过MFC将软键与windows mobile 6中基于CDialog的应用程序配合使用?

Windows mobile 如何通过MFC将软键与windows mobile 6中基于CDialog的应用程序配合使用?,windows-mobile,mfc,Windows Mobile,Mfc,如何通过MFC将软键与windows mobile 6中基于CDialog的应用程序配合使用 我有一个基于CDDialog的Windows Mobile 6(触摸屏)专业应用程序,我正在使用它 WM6 Professional中基于CDialog的应用程序的默认行为是默认情况下不使用任何软键。。。我想将软键映射到“取消”和“确定”功能,将IDOK和IDCANCEL发送到我的主对话框类 我一直在尝试使用CCommandBar,但运气不佳,SHCreateMenuBar也不适合我 有人知道如何让它工

如何通过MFC将软键与windows mobile 6中基于CDialog的应用程序配合使用

我有一个基于CDDialog的Windows Mobile 6(触摸屏)专业应用程序,我正在使用它

WM6 Professional中基于CDialog的应用程序的默认行为是默认情况下不使用任何软键。。。我想将软键映射到“取消”和“确定”功能,将IDOK和IDCANCEL发送到我的主对话框类

我一直在尝试使用CCommandBar,但运气不佳,SHCreateMenuBar也不适合我

有人知道如何让它工作吗?

什么是“不工作”的CCommandBar?您应该能够将CCommandBar成员添加到dialog类中,然后在dialog的InitDialog中调用命令栏上的Create and 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
您的菜单资源可能如下所示:

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()的末尾,结果成功了:)

我的问题是,在我的OniTDialog()中,我正在创建一些子对话框。当我在创建子对话框之前放置CCommandBar.InsertMenuBar()时,我没有得到“ok”或“Cancel”软键,当我在创建子对话框之后放置该行时,软键按预期显示,效果很好

再次感谢