请教wince下对话框添加菜单的问题

twins222 2010-03-30 11:18:56
编译器为evc4.0
我定义了一个菜单IDR_MENU1,然后在对话框的初始化函数OnInitDialog中添加如下代码:
hwndCB = CommandBar_Create(AfxGetInstanceHandle(), GetSafeHwnd(), IDC_CMBBAR);
CommandBar_InsertMenubar(hwndCB, AfxGetInstanceHandle(), IDR_DCON_MENU, IDC_CMBBAR);
CommandBar_Show(hwndCB, TRUE);
其中:
HWND hwndCB;
#define IDC_CMBBAR 0x100
为啥CommandBar_InsertMenubar返回值始终是0呢?
上面是我在一个比较大的工程中添加进来的,如果我自己新建一个测试工程,采用上面的方法就可以实现,不知道我哪里可能出现错误了呢?请高手指点
...全文
132 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wokuaihaoba 2011-03-14
  • 打赏
  • 举报
回复
可不可以用下面的:
CMenu m_Menu;
m_Menu.LoadMenu(菜单id号);
SetMenu(&m_Menu);
sunrain_hjb 2010-03-31
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 twins222 的回复:]
引用 2 楼 91program 的回复:
首先看hwndCB 得到的值是否正确?

CommandBar_InsertMenubar也有返回值的,如果失败,就要调用 GetLastError()看错误类型是什么

如何判断hwndCB的值是不是正确的,现在不是0x0000 是有值的,
现在用GetLastError()得到的错误代码是:1814 提示的问题是“找不到映像文件中指定的资……
[/Quote]

IDR_DCON_MENU不光是要定义,还得确实有这个资源才可以吧?
twins222 2010-03-31
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 sunrain_hjb 的回复:]
引用 4 楼 twins222 的回复:
引用 2 楼 91program 的回复:
首先看hwndCB 得到的值是否正确?

CommandBar_InsertMenubar也有返回值的,如果失败,就要调用 GetLastError()看错误类型是什么

如何判断hwndCB的值是不是正确的,现在不是0x0000 是有值的,
现在用GetLastError()得到的错误代码是:18……
[/Quote]

这个资源是有的啊 有菜单的。而且还有一个菜单项是一直都在用的菜单。我将那个菜单加载到这里面,返回的错误都是一样的,错误代码仍然是1814
twins222 2010-03-30
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 91program 的回复:]
首先看hwndCB 得到的值是否正确?

CommandBar_InsertMenubar也有返回值的,如果失败,就要调用 GetLastError()看错误类型是什么
[/Quote]
如何判断hwndCB的值是不是正确的,现在不是0x0000 是有值的,
现在用GetLastError()得到的错误代码是:1814 提示的问题是“找不到映像文件中指定的资源名” IDR_DCON_MENU命明明已经定义了啊 请指点
zhaoMohan 2010-03-30
  • 打赏
  • 举报
回复
应该是GetSafeHwnd 的问题 用m_hwnd可以的!
91program 2010-03-30
  • 打赏
  • 举报
回复
首先看hwndCB 得到的值是否正确?

CommandBar_InsertMenubar也有返回值的,如果失败,就要调用 GetLastError()看错误类型是什么
sunrain_hjb 2010-03-30
  • 打赏
  • 举报
回复
hwndCB这个是正确的吗?建议用GetLastError()查一下出错的具体原因了。

19,502

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧