如何在树控件中添加图标?
要用到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 是用来覆盖或遮掩图标的吧,要设成多少比较合适?
要用到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 是用来覆盖或遮掩图标的吧,要设成多少比较合适?
解决方案 »
- CListCtrl中的每一行数据都是new的,什么时候delete
- 如何用vc++在word中插入图片??
- 求电子书-------<<COM原理与应用>>
- 如何在CEditView中显示文本?不用文档视图结构(80分)
- 字符串分割的扩展问题
- PE格式加代码的问题,大家帮帮忙,郁闷死了~~~~~~~~
- 兄弟们,做一份调查,请大家谈谈关于自已想开发什么样的软件,以及市场上会需要什么软件(内详)
- 关于Win7下的Microsoft Speech SDK 5.1的Tutorials例子
- 哪里有 Installshield 6.x 的资料下载,急急急!!!
- IDL在VS2012(VC++)中怎样使用???
- 这个问题如何解决
- 男子110米栏夺金,散分!
你写的这两个创建函数是当一个位图上有很多图标的时候用的。
m_ctrlTree.SetImageList ( &m_TreeBootImage,TVSIL_NORMAL );
http://218.108.41.12/vchome/book/treectrl.htm
{
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的顺序值
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);//返回根项句柄以下添加数据项的代码就不写了。