如何在树控件中添加图标?
要用到CImageList的Create方法吧。
但不是很清楚。
如BOOL Create(
   UINT nBitmapID,
   int cx,
   int nGrow,
   COLORREF crMask 
);
BOOL Create(
   LPCTSTR lpszBitmapID,
   int cx,
   int nGrow,
   COLORREF crMask 
);我自己画了几个稿图,但就是加不进去,用系统自带的IDR_MAINFRAME这个程序图标就可以,但只是显示空白而已。
难道用只能用位图?位图是什么概念,不会是很多图标吧?还有,后面的crMask 是用来覆盖或遮掩图标的吧,要设成多少比较合适?

解决方案 »

  1.   

    http://218.108.41.12/vchome/book/imagelist.htm
      

  2.   

    void CMyTreeCtrl::InitializeImageList()
    {
    CImageList* pImageList = new CImageList();
    pImageList->Create(16, 16,/*位图的宽度和高度,其他的没用过*/ 
    ILC_MASK | ILC_COLOR24/*位图颜色*/, 5, 2); CBitmap bitmap;
    for(int i=0; i<IMAGE_BITMAP_NUM; i++)
    {
    UINT nID = BITMAP_IDS[i];//获得位图资源的ID号
    bitmap.LoadBitmap(nID);//载入位图
    pImageList->Add(&bitmap, (COLORREF)0xFFFFFF);//加入到ImageList
    bitmap.DeleteObject();
    }
    SetImageList(pImageList, TVSIL_NORMAL);
    }
    //在你加入ITEM到CTreeCtrl中时,指定iImage和iImageSel的值是在ImageList中Add的顺序值
      

  3.   

    你写的是局部变量
    把CImageList* pImageList放到.h中去否则当然只能看到空白了
      

  4.   

    HICON hIcon[6];
    int n;

    //初始化imagelist
    m_imageList.Create(16,16,ILC_COLOR24,6,8);
    m_imageList.SetBkColor(RGB(255,255,255));
    hIcon[0] = AfxGetApp()->LoadIcon(IDI_ICON_PRODUCT);
    hIcon[1] = AfxGetApp()->LoadIcon(IDI_ICON_TXT);
    hIcon[2] = AfxGetApp()->LoadIcon(IDI_ICON_EXE);
        hIcon[3] = AfxGetApp()->LoadIcon(IDI_ICON_INI);
    hIcon[4] = AfxGetApp()->LoadIcon(IDI_ICON_DLL);
    hIcon[5] = AfxGetApp()->LoadIcon(IDI_ICON_HTML); for(n=0;n<6;n++)
    {
    m_imageList.Add(hIcon[n]);
    } m_pTreeCtrl->SetImageList(&m_imageList, TVSIL_NORMAL);
    这样不就可以了吗
      

  5.   

    系统的TOOLBAR那一组图标就是位图了吧?
    我们自己也可以画的吧。