有一组彩色图标.用CImageList加载后,然后用ExtractIcon可以得到图标.
不过图标都是彩色的.有什么办法把彩色图标变成黑白的吗?(我需要用彩色/黑白表示在线和不在线状态)
当然可以做一组黑白图标,但那样的话太浪费资源.不是我所希望的.

解决方案 »

  1.   

    再做一组单色的CImageList,加载同样的资源
      

  2.   

    答非所问啊....
    看来二位公子还不理解我的意思啊.
    你可以用VC向导生成一个MDI工程,里面没有黑白图标资源,但工具栏上的图标照样可以显示成黑白状态的...
      

  3.   

    那个是无效状态,自己要实现可能只有重画了。还不如再做一组图标方便。
    你看看这个。
    http://community.csdn.net/Expert/topic/4282/4282425.xml?temp=.8008844
      

  4.   

    你可以构造一个单色的CImageList,这样会把彩色图标显示成黑白色,好像是构建CImageList的时候设置一个参数
      

  5.   

    codeproject 有个grayscale的类,把HICON 转为灰度的HICON,应该就是你想要的功能http://www.codeproject.com/bitmap/creategrayscaleicon.asp