如何在树控件中添加图标?
要用到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.   

    如果只是添加单独的图标或者图像的话,用BOOL Create( int cx, int cy, UINT nFlags, int nInitial, int nGrow );这个创建函数。
    你写的这两个创建函数是当一个位图上有很多图标的时候用的。
      

  2.   

    m_TreeBootImage.Create ( IDB_TreeBootImage,20,1,ILC_COLOR8);
    m_ctrlTree.SetImageList ( &m_TreeBootImage,TVSIL_NORMAL );
    http://218.108.41.12/vchome/book/treectrl.htm
      

  3.   

    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的顺序值
      

  4.   

    我自己画了一组位图,为什么还是不能显示?这组位图只有3个图标,都是按照教程上提示做的啊!!~~~
             CImageList m_list;
             m_list.Create(IDI_ICON1,16,3,RGB(0,0,0));
    treeCtrl.SetImageList(&m_list,TVSIL_NORMAL);CTreeCtrl &treeCtrl=GetTreeCtrl();//调用GetTreeCtrl()得到CTreeCtrl类的对象 DWORD dwStyle=::GetWindowLong(treeCtrl.m_hWnd,GWL_STYLE); dwStyle|=TVS_HASBUTTONS|TVS_HASLINES|TVS_LINESATROOT;//确定控件形态 ::SetWindowLong(treeCtrl.m_hWnd,GWL_STYLE,dwStyle); HTREEITEM hRoot,hCurPos,hPoint;//声明几个树结点 TV_INSERTSTRUCT tInsert;//声明一个插入树的结构体tInsert.hParent=TVI_ROOT;//声明父结点为根结点
    tInsert.hInsertAfter=TVI_LAST;
    tInsert.item.mask=TVIF_TEXT|TVIF_PARAM|TVIF_IMAGE|TVIF_SELECTEDIMAGE;//设屏蔽
    tInsert.item.pszText="仓库业务处理";//父结点字符
    tInsert.item.lParam=0;
    tInsert.item.iImage=0;//正常时图标
    tInsert.item.iSelectedImage=1;//选中时图标
    hRoot=treeCtrl.InsertItem(&tInsert);//返回根项句柄以下添加数据项的代码就不写了。