Shell扩展编程,如何为右键菜单项添加彩色图标?

code_killer 2009-08-01 06:06:38

编程环境是WindowsXP + VisualStudio2008.
我在IContextMenu::QueryContextMenu(..) 的实现函数里面通过
调用::InsertMenu 成功地在资源管理器的右键菜单里面添加了一个菜单项。

现在想在这个菜单项的左侧添加一个自定义的彩色图标(16位色),就像
WinZip和WinRAR那样的。
开始用::SetMenuItemBitmaps这个函数,总是不成功,后来发现这个函数只
支持单色位图。

搜寻其它方法无果,特来求助,希望有这方面经验的xdjm帮帮忙。

...全文
727 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
code_killer 2009-08-02
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 togoblime 的回复:]
使用IContextMenu3,重载MenuMessageHandler方法实现自绘制
http://www.codeproject.com/KB/shell/shellextguide7.aspx?msg=2145657

[/Quote]

参考codeproject上的这篇文章,问题基本解决。
用 IContextMenu3,响应 WM_MEASUREITEM 和 WM_DRAWITEM消息,自己绘制菜单项。
togoblime 2009-08-01
  • 打赏
  • 举报
回复
搞错了,应该是HandleMenuMsg2和HandleMenuMsg方法
togoblime 2009-08-01
  • 打赏
  • 举报
回复
使用IContextMenu3,重载MenuMessageHandler方法实现自绘制
http://www.codeproject.com/KB/shell/shellextguide7.aspx?msg=2145657
code_killer 2009-08-01
  • 打赏
  • 举报
回复
多谢楼上两位的回复。
不过我的程序中没有使用MFC,所以只能参考一下了。
如果直接用WinAPI如何实现呢?
bohut 2009-08-01
  • 打赏
  • 举报
回复
参考:
http://www.vckbase.com/document/viewdoc/?id=537
Ghost90 2009-08-01
  • 打赏
  • 举报
回复
看下这个例子

http://www.codeproject.com/KB/menus/newmenuxpstyle.aspx

15,976

社区成员

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

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