ModifyMenu的些比较奇怪的BUG

zrhown 2008-04-03 01:30:17
我的程序要对菜单进行重绘,可是一调用ModifyMenu就会在用TrackPopupMenuEx弹出菜单时出现断言错误,一直不知道怎么回事.
有遇到类似错误的给以指点!非常感谢.
...全文
114 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
knowledge_Is_Life 2008-04-30
  • 打赏
  • 举报
回复
lz要干嘛?
zrhown 2008-04-08
  • 打赏
  • 举报
回复
效果是一样的!
cnzdgs 2008-04-08
  • 打赏
  • 举报
回复
ModifyMenuW(m_hMenu,nID,MF_BYCOMMAND ¦ MF_ENABLED ¦ MF_OWNERDRAW,nID,tempSTR);
把这行代码改成
ModifyMenuW(m_hMenu,nID,MF_BYCOMMAND ¦ MF_ENABLED ¦ MF_OWNERDRAW,NULL,tempSTR);
这样试试。
zrhown 2008-04-08
  • 打赏
  • 举报
回复
和我的那个菜单的值不同!
zrhown 2008-04-08
  • 打赏
  • 举报
回复
查了几次都是0x01046244!
ahuisafe 2008-04-08
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 zrhown 的回复:]
如果是RELEASE版就会一切正常!在DEBUG下重试后最后走到系统中的UINT nItems = pMenu->GetMenuItemCount();
处停下,函数为_AfxFindPopupMenuFromID(CMenu* pMenu, UINT nID)!
[/Quote]
pMenu 为空?
zrhown 2008-04-08
  • 打赏
  • 举报
回复
不加MF_OWNERDRAW项没事,一加就出现那个断言!
cnzdgs 2008-04-03
  • 打赏
  • 举报
回复
你把ID改成位置试试。
zrhown 2008-04-03
  • 打赏
  • 举报
回复
如果是RELEASE版就会一切正常!在DEBUG下重试后最后走到系统中的UINT nItems = pMenu->GetMenuItemCount();
处停下,函数为_AfxFindPopupMenuFromID(CMenu* pMenu, UINT nID)!
cnzdgs 2008-04-03
  • 打赏
  • 举报
回复
有WM_MEASUREITEM消息吗?断言错误具体是什么?
zrhown 2008-04-03
  • 打赏
  • 举报
回复
那个是一样,中间有传递的,没有写!
cnzdgs 2008-04-03
  • 打赏
  • 举报
回复
ModifyMenuW(m_hMenu,nID,MF_BYCOMMAND ¦ MF_ENABLED ¦ MF_OWNERDRAW,nID,tempSTR);
你是要改m_hMenu还是m_hCopyMenu?
zrhown 2008-04-03
  • 打赏
  • 举报
回复
调试时看见那些句柄也都有值!
zrhown 2008-04-03
  • 打赏
  • 举报
回复
HMENU m_hGblMenu,m_hCopyMenu;
m_hGblMenu = LoadMenu(_Module.GetResourceInstance(), MAKEINTRESOURCE(IDR_MENU_PAGE));

m_hCopyMenu = GetSubMenu(m_hGblMenu,0);

ModifyMenuW(m_hMenu,nID,MF_BYCOMMAND | MF_ENABLED | MF_OWNERDRAW,nID,tempSTR);

TrackPopupMenuEx(m_hCopyMenu,TPM_VERTICAL, point.x, point.y,m_hWnd,NULL);
基本上就用到这些函数,OnDrawItem还没有触发就出问题了!
cnzdgs 2008-04-03
  • 打赏
  • 举报
回复
代码

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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