我在对话框中用CTree类建立了一个树视图,并在对话框中定义了一个CIMAGELIST类。
用CImageList.Create(位图资源,16,0,FALSE)建立位图资源。
CTREE定义变量名为m_tree,并如下:
m_Tree.SetImageList(&m_SmallImageList,TVSIL_NORMAL); 
tvInsert.item.mask=TVIF_TEXT|TVIF_IMAGE|TVIF_SELECTEDIMAGE;..............
tvInsert.item.iImage=i*2; //指定表项显示的图象
tvInsert.item.iSelectedImage=i*2+1; //指定选择状态下应显示的图象
.............问题是:所显示出来的位图怎么看都不是位图实际色彩(我用256或24位的位图都试过,"很难看"),
请问如何才能正确显示位图?(我用VC6)

解决方案 »

  1.   

    MFC的CTreeCtrl中只能使用16色的图标,因此当你放入256色的图标或者24位色的图标之后会被自动转为16色的图标显示,这样你就看不到实际的色彩。你可以采用自画的方法解决,或者到www.codeproject.com或者www.codeguru.com去找一个别人写好的控件。
      

  2.   

    我用32x32的Icon没事啊。
    m_ImageList.Create(32, 32, ILC_COLORDDB|ILC_MASK, 0, 4);
    m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON1));
    m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON2));
    m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON3));
    m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON4)); m_ListCtrl.SetImageList(&m_ImageList, LVSIL_NORMAL);
    m_ListCtrl为CListCtrl类型