在树中添加图标,我快疯了!!~~~
如何在树控件中添加图标?
要用到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 是用来覆盖或遮掩图标的吧,要设成多少比较合适?
问题点数:20、回复次数:8Top
1 楼laiyiling(陌生人[MVP])回复于 2004-09-01 13:01:57 得分 4
http://218.108.41.12/vchome/book/imagelist.htmTop
2 楼flyelf(空谷清音)回复于 2004-09-01 13:10:54 得分 4
贴出你的代码看看Top
3 楼LongLongAgoImBoy(ThereIsAMe)回复于 2004-09-01 13:15:14 得分 4
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的顺序值Top
4 楼zhushizu(从来就没有救世祖)回复于 2004-09-01 13:46:13 得分 0
是呀,我也是想了好久。。关注中。。。Top
5 楼888atao(阿涛)回复于 2004-09-01 14:05:06 得分 4
你写的是局部变量
把CImageList* pImageList放到.h中去
否则当然只能看到空白了
Top
6 楼yuantao(cfan)回复于 2004-09-01 14:51:46 得分 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);
这样不就可以了吗Top
7 楼chjc2003(至尊拖鞋)回复于 2004-09-01 15:52:42 得分 0
哈哈,果然是声明了局部变量了。
看来不够认真啊,真是经验之谈!!~~
佩服佩服。
多谢各位的热心!~~Top
8 楼chjc2003(至尊拖鞋)回复于 2004-09-01 16:03:58 得分 0
系统的TOOLBAR那一组图标就是位图了吧?
我们自己也可以画的吧。Top




