CListCtrl列表框添加与更改图标
2011-04-21 23:39
295 查看
一、添加图标
首先把列表框的属性中样式设为report样式。然后在给列表框插入列之前执行下面的操作:
CBitmap bitmap;
m_Imagelist.Create (16,16,ILC_COLOR24 ,5,1);
bitmap.LoadBitmap(IDB_TIME);
m_Imagelist.Add (&bitmap,RGB(0,0,0));
bitmap.Detach (); //在加载前先释放位图
bitmap.LoadBitmap(IDB_TICK);
m_Imagelist.Add (&bitmap,RGB(0,0,0));
//这样就给m_Imagelist 链表插入了两张图标。
m_resList.SetExtendedStyle(LVS_EX_CHECKBOXES |LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT | LVS_EX_SUBITEMIMAGES); //特别注意最后一个属性。
m_resList.SetImageList(&m_Imagelist, LVSIL_SMALL); //把m_Imagelist 关联给列表框。
msdn上的例子:
// Add my icons.
pmyImageList->Add(AfxGetApp()->LoadIcon(IDI_ICON1));
pmyImageList->Add(AfxGetApp()->LoadIcon(IDI_ICON2));
// Add my bitmap, make all black pixels transparent.
CBitmap bm;
bm.LoadBitmap(IDB_BITMAP1);
pmyImageList->Add(&bm, RGB(0, 0, 0));
然后,在给列表框插入一行时:
m_resList.InsertItem(j,str,0); //最后一个参数为想要的图标在m_Imagelist 中的下标。
二、动态更改图标
LVITEM Itemattr;
Itemattr.iItem=i; //指定哪一行
Itemattr.mask = LVIF_IMAGE;
Itemattr.iImage =4; //要把当前图标改成m_Imagelist 中下标为 4 的图标。
m_resList.SetItem (&Itemattr); //更改成功。
三、关于两次LoadBitmap的错误
有一个CBitmap对象,先前已经用LoadBitmap加载了一副位图,但如果在后面的操作中想再次LoadBitmap的话会出错.解决方法是先判断这个对象是否已经加载了位图,如果加载了,就释放掉.
CBitmap bmp;
if(bmp.m_hObject)
{
bmp.Detach();
}
bmp.LoadBitmap(位图ID);
四、树形控件设置图标
与列表框控件添加图标方法是一样的,只是SetItemImage的时候,函数参数不一样。只解释两个:
nImage
Index of the item's image in the tree view control's image list.
nSelectedImage
Index of the item's selected image in the tree view control's image list.
//比如你设定的是1,2 则该成员未被选择时显示第二个图标,选择时显示第三个图标。
首先把列表框的属性中样式设为report样式。然后在给列表框插入列之前执行下面的操作:
CBitmap bitmap;
m_Imagelist.Create (16,16,ILC_COLOR24 ,5,1);
bitmap.LoadBitmap(IDB_TIME);
m_Imagelist.Add (&bitmap,RGB(0,0,0));
bitmap.Detach (); //在加载前先释放位图
bitmap.LoadBitmap(IDB_TICK);
m_Imagelist.Add (&bitmap,RGB(0,0,0));
//这样就给m_Imagelist 链表插入了两张图标。
m_resList.SetExtendedStyle(LVS_EX_CHECKBOXES |LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT | LVS_EX_SUBITEMIMAGES); //特别注意最后一个属性。
m_resList.SetImageList(&m_Imagelist, LVSIL_SMALL); //把m_Imagelist 关联给列表框。
msdn上的例子:
// Add my icons.
pmyImageList->Add(AfxGetApp()->LoadIcon(IDI_ICON1));
pmyImageList->Add(AfxGetApp()->LoadIcon(IDI_ICON2));
// Add my bitmap, make all black pixels transparent.
CBitmap bm;
bm.LoadBitmap(IDB_BITMAP1);
pmyImageList->Add(&bm, RGB(0, 0, 0));
然后,在给列表框插入一行时:
m_resList.InsertItem(j,str,0); //最后一个参数为想要的图标在m_Imagelist 中的下标。
二、动态更改图标
LVITEM Itemattr;
Itemattr.iItem=i; //指定哪一行
Itemattr.mask = LVIF_IMAGE;
Itemattr.iImage =4; //要把当前图标改成m_Imagelist 中下标为 4 的图标。
m_resList.SetItem (&Itemattr); //更改成功。
三、关于两次LoadBitmap的错误
有一个CBitmap对象,先前已经用LoadBitmap加载了一副位图,但如果在后面的操作中想再次LoadBitmap的话会出错.解决方法是先判断这个对象是否已经加载了位图,如果加载了,就释放掉.
CBitmap bmp;
if(bmp.m_hObject)
{
bmp.Detach();
}
bmp.LoadBitmap(位图ID);
四、树形控件设置图标
与列表框控件添加图标方法是一样的,只是SetItemImage的时候,函数参数不一样。只解释两个:
nImage
Index of the item's image in the tree view control's image list.
nSelectedImage
Index of the item's selected image in the tree view control's image list.
//比如你设定的是1,2 则该成员未被选择时显示第二个图标,选择时显示第三个图标。
相关文章推荐
- CListCtrl列表框添加与更改图标
- CListCtrl列表框添加与更改图标
- CListCtrl列表框添加与更改图标
- CListCtrl列表框添加与更改图标
- 第六课 TextView添加图片 及更改程序图标
- CListCtrl非第一列添加图标
- Unity入门之更改鼠标图标、添加天空盒子、添加浓雾
- 基于MFC的列表框CListCtrl项目添加与筛除函数
- 设为首页、添加到收藏夹、更改地址栏前小图标、按下回车键事件、关闭窗口
- 为exe添加图标,更改exe图标--python
- 如何更改添加工具栏按钮图标
- CentOS自带mysql配置(密码更改、端口开放访问、添加进系统启动项)
- SharePoint开发中如何使用Visual Studio给你的Web Part添加图标
- android 中 EditText加入图标 更改边框颜色 设置透明 代码
- java swing 中的列表框JList如何在程序中动态的添加和删除元素
- 如何在浏览器地址栏前添加自定义的小图标?
- MFC中的CListCtrl添加右键菜单消息响应实例分析
- 更改应用程序图标 和标题
- 给网站添加选项卡图标
- 用jQuery实现multiple select(列表框)左右添加和删除功能