如何通过MFC在Windows Mobile 6中将软键与基于CDialog的应用程序一起使用?

时间:2008-09-19 21:20:27

标签: windows-mobile mfc

如何通过MFC在Windows Mobile 6中将软键与基于CDialog的应用程序一起使用?

我有一个基于CDialog的Windows Mobile 6(触摸屏)专业应用程序,我正在工作。

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

我一直试图与CCommandBar合作而没有运气,SHCreateMenuBar也没有为我工作。

有没有人有一个如何让它工作的样本?

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

非常感谢你......我为此感到疯狂......

您的代码完全符合预期......

首先我使用它并得到相同的结果,除SIP输入按钮外,软键区域将为空白。

经过一个小时的调试后,我尝试将这两行代码放在我的OnInitDIalog()的END处,并且它有效:)

我的问题很重要,因为在我的OnIitDialog()中我正在创建一些子对话框。当我在创建子对话框之前放入CCommandBar.InsertMenuBar()时,我没有得到“ok”或“Cancel”软键,当我在创建子对话框后放置该行时,软键会按预期显示并且工作得很好。 / p>

再次感谢