首页
社区
课程
招聘
[求助]RadAsm下调用DeleteMenu和RemoveMenu的运行效果相同
发表于: 2009-5-20 21:57 5764

[求助]RadAsm下调用DeleteMenu和RemoveMenu的运行效果相同

2009-5-20 21:57
5764
我的菜单资源是用LoadMenu载入的,调用语句是
invoke RemoveMenu,hMenu6,IDM_6_2,MF_BYCOMMAND
invoke DeleteMenu,hMenu6,IDM_6_2,MF_BYCOMMAND
两者运行效果相同,都是把ID为IDM_6_2的那个菜单项移除了,本来载入时那个ID为IDM_6_2的菜单项下还有子菜单,但是如果菜单项是一个弹出式菜单,DeleteMenu清除弹出式菜单,但RemoveMenu不清除它。
所以我不清楚哪里有问题,请高手解决。

主菜单
    子菜单1
      子菜单2
                 A
                 B
                 C
      子菜单3

ID为IDM_6_2的为子菜单2,最后运行效果都为

主菜单
      子菜单1
         子菜单3
我想问应该在调用RemoveMenu时会有A,B,C 的啊

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
2
DeleteMenu和RemoveMenu的运行效果不同,DeleteMenu后,如果菜单项还有子菜单,会连同子菜单也一并删除掉,而RemoveMenu不会删除子菜单。子菜单还是可以使用的。只不过你没有完全理解清楚前面的说明的意思。RemoveMenu虽然没有删除子菜单,但是,子菜单的父菜单项已经被RemoveMenu函数删除了,子菜单没有了凭依,当然不会再在其它菜单项上显示出来,你要他再显示出来,你必须为这个子菜单再给他指定一个父菜单才行,当然,这也必须在你使用RemoveMenu函数前用GetSubMenu函数取得这个子菜单的句柄并保存才能在后面使用(或用其它方法取得这个句标)。
2009-5-21 11:43
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
我用GetSubMenu函数取得这个子菜单的句柄,为这个子菜单再给他指定一个父菜单,是不是用AppendMenu函数啊,
2009-5-21 15:16
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
4
AppendMenu函数InsertMenu都可以,
2009-5-21 15:38
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
我用了那两个函数,菜单项是可以添加上去,可是都还是显示不出子菜单里的内容,
invoke InsertMenu,hMenu6,IDM_6_3,MF_POPUP,hSubMenu,addr IDM_6_4,这样写对吗?
2009-5-21 16:25
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
6
; 试试这样写
.data
  IDM_6_4 db 'NewMenu',0
.code
invoke InsertMenu,hMenu6,0,MF_POPUP or MF_BYPOSITION,hSubMenu,addr IDM_6_4
2009-5-21 16:34
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
还是不行,请问你方便QQ跟我联系下吗?是我的毕业设计,就差这点了,我的QQ:595809908

如果加我注下是“小虾”
我在这里先谢谢了。
2009-5-21 16:49
0
游客
登录 | 注册 方可回帖
返回
//