热情软件屋

 

为什么对用InsertMenu方式加入带字菜单项不能进行修改


编号:QA004304
建立日期: 2001年7月16日 最后修改日期:2001年7月16日
所属类别:

wangpk:
    操作系统:VC6
    编程工具:win2000
    问题:我在用MFC InsertMenu(nPos,MF_POPUP|MF_BYPOSITION|MF_ENABLED | MF_OWNERDRAW, MAKEINTRESOURCE(ID_SUBMENU),(LPCTSTR)lpez))加入一个带字菜单的菜单X项后,不能接管MeasureItem消息(在MeasrueItem消息中对这个菜单进行修饰(比如增加ITEM的高度什么的)),为什么我不能对这个带字菜单的菜单项进行修改,对用InsertMenu(nPos,MF_BYPOSITION|MF_ENABLED | MF_OWNERDRAW, NULL,(LPCTSTR)lpez))方式加入的菜单可以接管MeasureItem,而对菜单进行修改呢???

回答:

    从你列出的代码InsertMenu(nPos,MF_POPUP|MF_BYPOSITION|MF_ENABLED | MF_OWNERDRAW, MAKEINTRESOURCE(ID_SUBMENU),(LPCTSTR)lpez))来看,你是想插入一个包含弹出菜单的菜单项,其中MAKEINTRESOURCE(ID_SUBMENU)是想转换ID为句柄。你一定混淆了ID与句柄的含义。ID与句柄虽然都是32位数,但理论上很难是一个值,因此此处出错在所难免。如果你想正确插入一个弹出菜单,函数中nIDNewItem参数应该是弹出菜单的菜单句柄,而不是一个被强制转换的ID值。

此问题由王加宝回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio