求教GetSubMenu()返回值为空的解决方法

cselove 2011-08-10 12:09:12
最近在看孙鑫的视频(虽然我知道很老了-_-|||)
由于VC6和VC10的差别,总是遇到各种各样的问题
现在看到第六章,之前遇到过GetMenu()->GetSubMenu(0)->SetMenuItemBitmaps(0,MF_BYPOSITION,&m_bitmap,&m_bitmap);
崩溃的事,后来通过搜索帖子解决了。

结果往后看了没多久,看到添加右键菜单的地方,又出现了运行没错误,但是右键点击后出现崩溃的情况
代码如下:
void CDRAWView::OnRButtonDown(UINT nFlags, CPoint point)
{
CMenu menu;
menu.LoadMenu(IDR_MENU1);
CMenu* pPopup = menu.GetSubMenu(0);
ClientToScreen(&point);
pPopup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y,GetParent());
}

后来加了个判断语句,发现menu.GetSubMenu(0)的返回值为空,视频里的操作我是照着一步步做的,后来发现崩溃后我又拿着书往回翻了几遍检查了很久,没发现什么不同的地方
然后我就上百度搜索,倒是发现几个跟我一样情况的帖子,可是貌似都没解决,或没提供解决方法。
希望有高手能告知解决方法,万分感谢。
...全文
584 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wtsos 2013-01-23
  • 打赏
  • 举报
回复
引用 3 楼 cselove 的回复:
我已经自己解决了 代码没有出错 把“使用传统的停靠工具栏”这一项勾上就好了 解决方法跟之前GetMenu()->GetSubMenu(0)->SetMenuItemBitmaps(0,MF_BYPOSITION,&m_bitmap,&m_bitmap);出现崩溃的情况很像。 问题虽然解决了,不过有种瞎猫碰到死耗子的感觉,还是不知道是什么原因引起的。
难道不用传统停靠工具栏就解决不了这个问题?
优柔小猫 2012-08-09
  • 打赏
  • 举报
回复
请教一下 您这两个问题都是怎么解决的?
cselove 2011-08-10
  • 打赏
  • 举报
回复
如果不存在编译都不会通过吧 -_-|||
Eleven 2011-08-10
  • 打赏
  • 举报
回复
CMenu menu;
menu.LoadMenu(IDR_MENU1);
这里LoadMenu成功?IDR_MENU1标示的菜单资源存在?
king5201006 2011-08-10
  • 打赏
  • 举报
回复
学习学习
信阳毛尖 2011-08-10
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 cselove 的回复:]
我已经自己解决了
代码没有出错
把“使用传统的停靠工具栏”这一项勾上就好了
解决方法跟之前GetMenu()->GetSubMenu(0)->SetMenuItemBitmaps(0,MF_BYPOSITION,&m_bitmap,&m_bitmap);出现崩溃的情况很像。

问题虽然解决了,不过有种瞎猫碰到死耗子的感觉,还是不知道是什么原因引起的。
[/Quote]
zgl7903 2011-08-10
  • 打赏
  • 举报
回复
GetSubMenu 需要你的菜单是pop-up 属性的
类似于
menu-1 (pop-up)
|_menu2
|_menu3

cselove 2011-08-10
  • 打赏
  • 举报
回复
我已经自己解决了
代码没有出错
把“使用传统的停靠工具栏”这一项勾上就好了
解决方法跟之前GetMenu()->GetSubMenu(0)->SetMenuItemBitmaps(0,MF_BYPOSITION,&m_bitmap,&m_bitmap);出现崩溃的情况很像。

问题虽然解决了,不过有种瞎猫碰到死耗子的感觉,还是不知道是什么原因引起的。

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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