CListCtrl&CTabCtrl添加图像Icon
来源:互联网 发布:九阴御姐女捏脸数据 编辑:程序博客网 时间:2024/06/03 16:01
CListCtrl&CTabCtrl添加图像Icon
列表控件以及Tab页控件可以按照类别显示信息。为了增加显示的明朗,美观,可视性,可以为没个显示内容增加ICON。下面就将近日的心得整理如下,如何在列表以及TAB页标签中加入图像。
1. 声明变量:
// CtstsDlg 对话框
class CtstsDlg : public CDialog
{
// 构造
public:
CtstsDlg(CWnd* pParent = NULL); // 标准构造函数
// 对话框数据
enum { IDD = IDD_TSTS_DIALOG };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
// 重载虚函数
virtual BOOL OnInitDialog();
DECLARE_MESSAGE_MAP()
public:
// 列表控件
CListCtrl m_ListCtrl;
public:
// 图像列表
CImageList m_ImageList;
public:
// 控制页
CTabCtrl m_tabCtrl;
};
2. 功能实现
功能实现主要是在OnInitDialog() 函数中进行,具体代码如下:
// CtstsDlg 消息处理程序
BOOL CtstsDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// 将“关于...”菜单项添加到系统菜单中。
// 省略系统代码...................................
//****************************************************
// TODO: 在此添加额外的初始化代码
// 创建并初始化 图像列表 ,其中IDI_ICON1等等是已经在资源中创建的ICON的ID号
m_ImageList.Create(16, 16, ILC_COLOR16 | ILC_MASK, 5, 2);
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON1));
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON2));
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICONBit));
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICONState));
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICONGraph));
// 设置列表控件的属性,从而使其具备为每一个SUNITEM添加ICON的能力
m_ListCtrl.SetExtendedStyle(m_ListCtrl.GetExtendedStyle() | LVS_EX_FULLROWSELECT);
m_ListCtrl.SetExtendedStyle(m_ListCtrl.GetExtendedStyle() | LVS_EX_HEADERDRAGDROP);
m_ListCtrl.SetExtendedStyle(m_ListCtrl.GetExtendedStyle() | LVS_EX_GRIDLINES);
// 此属性最重要,另外,必须设置列表控件具备属性LVS_REPORT
m_ListCtrl.SetExtendedStyle(m_ListCtrl.GetExtendedStyle() | LVS_EX_SUBITEMIMAGES);
// 将图像列表添加到列表控件中
m_ListCtrl.SetImageList(&m_ImageList, LVSIL_SMALL);
// 创建列表控件的各个列,第一列为空列
m_ListCtrl.InsertColumn(0,"",LVCFMT_CENTER,0);
m_ListCtrl.InsertColumn(1,"city",LVCFMT_CENTER,100);
m_ListCtrl.InsertColumn(2,"Language",LVCFMT_CENTER,100);
m_ListCtrl.InsertColumn(3,"People",LVCFMT_CENTER,100);
// 创建列表控件的各个行
int item=m_ListCtrl.InsertItem(0,""); // 第一列对应的行为空
m_ListCtrl.SetItemData(item,0);
m_ListCtrl.SetItemText(item,1,"QingDao");
m_ListCtrl.SetItemText(item,2,"Chinese");
m_ListCtrl.SetItemText(item,3 ,"sophia");
// 设置 显示结构体, 为第一行添加ICON
LV_ITEM lvitem = {0};
lvitem.mask = LVIF_IMAGE;
lvitem.iItem = item;
lvitem.iSubItem = 1;
lvitem.iImage = 1; // 图像索引,以ImageList添加顺序为准
m_ListCtrl.SetItem(&lvitem);
lvitem.iSubItem = 2;
lvitem.iImage = 2;
m_ListCtrl.SetItem(&lvitem);
// 添加列表控件第二列,同理,第一列对应的行单元为空
item=m_ListCtrl.InsertItem(1,"");
m_ListCtrl.SetItemData(item,1);
m_ListCtrl.SetItemText(item,1,"BeiJing");
m_ListCtrl.SetItemText(item,2,"Chinese");
m_ListCtrl.SetItemText(item,3 ,"Ben");
// 为第二行添加ICON图像
lvitem.iItem = item;
lvitem.iSubItem = 1;
lvitem.iImage = 0;
m_ListCtrl.SetItem(&lvitem);
lvitem.iSubItem = 2;
lvitem.iImage = 3;
m_ListCtrl.SetItem(&lvitem);
// TabCtrl 添加ICON
m_tabCtrl.SetImageList(&m_ImageList);
m_tabCtrl.InsertItem(0,"bitmap",2);
m_tabCtrl.InsertItem(1,"state",3);
m_tabCtrl.InsertItem(2," graph",4);
return TRUE;
}
3. 实现结果如下:
// TAB 页添加ICON显示
// 列表控件添加ICON显示
- CListCtrl&CTabCtrl添加图像Icon
- CTabCtrl 添加 tooltip方法
- icon图像
- QT下添加*.qrc(图标Icon、图像)资源
- QT下添加*.qrc(图标Icon、图像)资源
- MFC CTabCtrl类和CListCtrl类实际应用
- C++怎样获得CTabCtrl标签/CListCtrl列标头的文字?
- CTabCtrl
- ctabctrl
- ctabctrl
- CTabCtrl
- ctabctrl
- CTabCtrl
- CTabCtrl
- CTabCtrl
- ClistCtrl 添加 排序支持
- CListctrl 添加图片
- CListCtrl添加右键菜单
- python文件读写,python文件os模块
- Apache Tika
- vb 读取txt文本的行数方法比较
- java学习之路----对spring的初步研究-----你看了这个都不懂什么叫IOC,我就。。。。
- 怎样把QString转换为char *或者相反?
- CListCtrl&CTabCtrl添加图像Icon
- 14--5--2Fun
- 32位64位最大内存、寻址空间等问题
- MySQL 5.1 分区技术初探(一)
- Python单例模式的4种实现方法
- SQL正则表达式
- 关于设计模式的7种坏味道和11种原则
- linux 安装oracle11g
- oracle 数据库