问题描述:
我在做一个即时通讯的模块,要根据用户上下线的状态把头像变灰或者点亮,我在我的TreeCtrl里用
m_MyTree.SetImageList(&MyImageList,TVSIL_NORMAL),则使用m_MyTree.SetItemState()方法无法改变头像,如果使用m_MyTree.SetImageList(&MyImageList,TVSIL_STATE),则无法使用自定义的头像(我把自定义的头像BMP文件都导入到MyImageList里了,可以通过MyImageList的索引来自定义头像)。
由于本人对MFC的熟悉程度不够,所以“无法”也可能是我不会……,滚求达人解答

解决方案 »

  1.   

    SetItemImage  需要更新的时候调用这个函数设置为新的索引值即可
      

  2.   

    我看了QQ的头像文件夹,一个头像就3个文件,分别是3个尺寸的(16*16,20*20,32*32),如果按照您说的来,
    至少要12个……
    CTreeCtrl::SetImageList(CImageList * pImageList,int nImageListType)中,如果把nImageListType设为 
    TVSIL_NORMAL,选中状态的是自动生成的
      

  3.   

    QQ是自己写算法处理的  你也可以这么做,算法很简单,   当前像素值 = (R+G+B)/3