为什么对用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值。
此问题由王加宝回答。
| |
|
|
| |
|
|