1

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

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

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

我一直在尝试与 CCommandBar 一起工作,但没有成功,而且 SHCreateMenuBar 也不适合我。

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

4

2 回答 2

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
于 2008-09-19T23:39:18.827 回答
0

太感谢了……我快疯了……

您的代码完全按预期工作......

起初我使用它并得到相同的结果,除了 SIP 输入按钮之外​​,软键区域将是空白的。

经过一个小时左右的调试后,我尝试将这两行代码放在 OnInitDIalog() 的末尾,它起作用了:)

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

再次感谢

于 2008-09-20T04:23:49.953 回答