CListCtrl列表框添加与更改图标
2012-01-31 11:28
211 查看
一、添加图标5 }5 R. f% N k
首先把列表框的属性中样式设为report样式。然后在给列表框插入列之前执行下面的操作:8 a$ N4 D1 G* w$ B
CBitmap bitmap; i U; x# s" @: w6 q/ B% [
m_Imagelist.Create (16,16,ILC_COLOR24 ,5,1);
Hbitmap.LoadBitmap(IDB_TIME);: a" }/ h/ E2 m
m_Imagelist.Add (bitmap,RGB(0,0,0));: N h z% q% C( |6 ]4 A
bitmap.Detach (); //在加载前先释放位图
bitmap.LoadBitmap(IDB_TICK);* G) I9 n) b, y1 q" e0 M, N% h
m_Imagelist.Add (bitmap,RGB(0,0,0));
//这样就给m_Imagelist 链表插入了两张图标。
6 ]; P2 j' X+ J$ `
m_resList.SetExtendedStyle(LVS_EX_CHECKBOXES |LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT | LVS_EX_SUBITEMIMAGES);
//特别注意最后一个属性。
m_resList.SetImageList(m_Imagelist, LVSIL_SMALL); //把m_Imagelist 关联给列表框。) x. Z1 {4 f" S(
?/ z1 }* U
msdn上的例子:
// Add my icons.
pmyImageList->Add(AfxGetApp()->LoadIcon(IDI_ICON1));0 J: V! ^4 O9 k9 ? x" f( W
pmyImageList->Add(AfxGetApp()->LoadIcon(IDI_ICON2));- c8 C m8 j, p( G( F
V7 ~- Y- m. n' I- p4 u
// Add my bitmap, make all black pixels transparent.
CBitmap bm;
LoadBitmap(IDB_BITMAP1);
pmyImageList->Add(bm, RGB(0, 0, 0));
//然后,在给列表框插入一行时:
m_resList.InsertItem(j,str,0);
//最后一个参数为想要的图标在m_Imagelist 中的下标。6 F4 g j8 P; m5 D% G1 T. s" u( y
% Z1 I Q: v7 v, R% \
4 ?, G4 Q' A1 z/ f! |# y4 V
二、动态更改图标
LVITEM Itemattr;
Itemattr.iItem=i; //指定哪一行4 P4 N/ Q5 B4 O
Itemattr.mask = LVIF_IMAGE;+ ^; @0 ^. ?. p2 I+ u
Itemattr.iImage =4; //要把当前图标改成m_Imagelist 中下标为 4 的图标。* @: r" v+ K* R
m_resList.SetItem (Itemattr); //更改成功。
@* b) q6 y
5 ]3 B/ S% ?5 J; s" |
三、关于两次LoadBitmap的错误+ u) a2 @$ O5 L/ q! c2 |3 R$ W
有一个CBitmap对象,先前已经用LoadBitmap加载了一副位图,但如果在后面的操作中想再次LoadBitmap的话会出错.解决方法是先判断这个对象是否已经加载了位图,如果加载了,就释放掉.
CBitmap bmp;
if(bmp.m_hObject)
{
bmp.Detach();! j3 w) l% w3 D
}) O0 A6 q Q* S7 r
bmp.LoadBitmap(位图ID);
N# w9 P \. m# b6 j4 X
四、树形控件设置图标3 {- I( O Q7 s1 U9 X
与列表框控件添加图标方法是一样的,只是SetItemImage的时候,函数参数不一样。只解释两个:) g" ?" x7 k s* M* J
nImage
Index of the item's image in the tree view control's image list.
: Y. d$ J* y9 z$ f' I% t
nSelectedImage * y( ? c i( o: A1 J+ d* D0 w
Index of the item's selected image in the tree view control's image list.
//比如你设定的是1,2 则该成员未被选择时显示第二个图标,选择时显示第三个图标。
首先把列表框的属性中样式设为report样式。然后在给列表框插入列之前执行下面的操作:8 a$ N4 D1 G* w$ B
CBitmap bitmap; i U; x# s" @: w6 q/ B% [
m_Imagelist.Create (16,16,ILC_COLOR24 ,5,1);
Hbitmap.LoadBitmap(IDB_TIME);: a" }/ h/ E2 m
m_Imagelist.Add (bitmap,RGB(0,0,0));: N h z% q% C( |6 ]4 A
bitmap.Detach (); //在加载前先释放位图
bitmap.LoadBitmap(IDB_TICK);* G) I9 n) b, y1 q" e0 M, N% h
m_Imagelist.Add (bitmap,RGB(0,0,0));
//这样就给m_Imagelist 链表插入了两张图标。
6 ]; P2 j' X+ J$ `
m_resList.SetExtendedStyle(LVS_EX_CHECKBOXES |LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT | LVS_EX_SUBITEMIMAGES);
//特别注意最后一个属性。
m_resList.SetImageList(m_Imagelist, LVSIL_SMALL); //把m_Imagelist 关联给列表框。) x. Z1 {4 f" S(
?/ z1 }* U
msdn上的例子:
// Add my icons.
pmyImageList->Add(AfxGetApp()->LoadIcon(IDI_ICON1));0 J: V! ^4 O9 k9 ? x" f( W
pmyImageList->Add(AfxGetApp()->LoadIcon(IDI_ICON2));- c8 C m8 j, p( G( F
V7 ~- Y- m. n' I- p4 u
// Add my bitmap, make all black pixels transparent.
CBitmap bm;
LoadBitmap(IDB_BITMAP1);
pmyImageList->Add(bm, RGB(0, 0, 0));
//然后,在给列表框插入一行时:
m_resList.InsertItem(j,str,0);
//最后一个参数为想要的图标在m_Imagelist 中的下标。6 F4 g j8 P; m5 D% G1 T. s" u( y
% Z1 I Q: v7 v, R% \
4 ?, G4 Q' A1 z/ f! |# y4 V
二、动态更改图标
LVITEM Itemattr;
Itemattr.iItem=i; //指定哪一行4 P4 N/ Q5 B4 O
Itemattr.mask = LVIF_IMAGE;+ ^; @0 ^. ?. p2 I+ u
Itemattr.iImage =4; //要把当前图标改成m_Imagelist 中下标为 4 的图标。* @: r" v+ K* R
m_resList.SetItem (Itemattr); //更改成功。
@* b) q6 y
5 ]3 B/ S% ?5 J; s" |
三、关于两次LoadBitmap的错误+ u) a2 @$ O5 L/ q! c2 |3 R$ W
有一个CBitmap对象,先前已经用LoadBitmap加载了一副位图,但如果在后面的操作中想再次LoadBitmap的话会出错.解决方法是先判断这个对象是否已经加载了位图,如果加载了,就释放掉.
CBitmap bmp;
if(bmp.m_hObject)
{
bmp.Detach();! j3 w) l% w3 D
}) O0 A6 q Q* S7 r
bmp.LoadBitmap(位图ID);
N# w9 P \. m# b6 j4 X
四、树形控件设置图标3 {- I( O Q7 s1 U9 X
与列表框控件添加图标方法是一样的,只是SetItemImage的时候,函数参数不一样。只解释两个:) g" ?" x7 k s* M* J
nImage
Index of the item's image in the tree view control's image list.
: Y. d$ J* y9 z$ f' I% t
nSelectedImage * y( ? c i( o: A1 J+ d* D0 w
Index of the item's selected image in the tree view control's image list.
//比如你设定的是1,2 则该成员未被选择时显示第二个图标,选择时显示第三个图标。
相关文章推荐
- CListCtrl列表框添加与更改图标
- CListCtrl列表框添加与更改图标
- CListCtrl列表框添加与更改图标
- CListCtrl列表框添加与更改图标
- Unity入门之更改鼠标图标、添加天空盒子、添加浓雾
- 基于MFC的列表框CListCtrl项目添加与筛除函数
- 设为首页、添加到收藏夹、更改地址栏前小图标、按下回车键事件、关闭窗口
- 为exe添加图标,更改exe图标--python
- 如何更改添加工具栏按钮图标
- 第六课 TextView添加图片 及更改程序图标
- CListCtrl非第一列添加图标
- NHibernate - HQL - 添加和更改
- CListCtrl一行显示多个图标问题
- 【如何添加网站图标favicon】
- C#中ListView添加系统文件图标
- VC TreeCtrl 添加图标 背景色透明
- Linux下添加FTP账号和服务器、增加密码和用户,更改FTP目录
- android添加常驻图标到状态栏
- 多选列表框动态添加,移动,删除,全选等操作的简单实例
- Android O 中充电提示音的几种添加更改方式