汽车
cimagelist(一文详解MFC List Control 列表视图控件)

List Control 控件

CListCtrl类封装了“列表视图控件”功能,列表视图控件中的每一项含有一个图标与标签,Windows平台资源管理器就是这种控件,有4种显示模式:大图标(32×32像素)、小图标(16×16像素)、列表视图、报表视图。

一文详解MFC List Co<em></em>ntrol 列表视图控件nerror="javascript:errorimg.call(this);">

图像列表

图像列表(CImageList)是相同大小图像的一个集合,以0为图像的起始索引,本身并不是控件,需要和CListCtrl、CTreeCtrl等控件一起使用。

BOOL Create( int cx, int cy, UINT nFlags, int nInitial, int nGrow );

参数:

cx

每个图象的尺寸,以像素为单位。

cy

每个图象的尺寸,以像素为单位。

nFlags

确定创建的图象列表类型。此参数可能为以下值的组合,但只能有一个ILC_COLOR值。

含义

ILC_COLOR

如果没有其它ILC_COLOR* 标记被确定,则使用缺省行为。典型地,缺省为ILC_COLOR4;但对于旧的显示驱动程序,缺省为ILC_COLORDDB

ILC_COLOR4

使用4位(16色)设备独立位图(DIB)部分作为图象列表的位图

ILC_COLOR8

使用8位DIB部分。彩色表格使用的颜色与半色调调色板的一样

ILC_COLOR16

使用16位(32/64K色)DIB部分

ILC_COLOR24

使用24位DIB部分

ILC_COLOR32

使用32位DIB部分

ILC_COLORDDB

使用设备独立位图

ILC_MASK

使用掩码。图象列表包含两个位图,其中一个是用做掩码的位图。如果不包括此值,图象列表只包含一个位图

nInitial

图象列表最初包含的图象数。

nGrow

当系统需要改变列表为新图象准备空间时,图象列表可生成的图象数。此参数替代改变的图象列表所能包含的新图象数。

static CImageList imgList;imgList.Create(32, 32, ILC_COLOR32, 3, 1);imgList.Add(AfxGetApp()->LoadIcon(IDI_ICON_BTC32));imgList.Add(AfxGetApp()->LoadIcon(IDI_ICON_LTC32));imgList.Add(AfxGetApp()->LoadIcon(IDI_ICON_XRP32));m_listctrl1.SetImageList(&imgList, LVSIL_NORMAL);m_listctrl1.InsertItem(0, _T("比特币"), 0);m_listctrl1.InsertItem(0, _T("莱特币"), 1);m_listctrl1.InsertItem(0, _T("瑞波币"), 2);m_listctrl1.SetItemState(1, LVIS_FOCUSED | LVIS_SELECTED, LVIS_FOCUSED | LVIS_SELECTED);
一文详解MFC List Co<em></em>ntrol 列表视图控件nerror="javascript:errorimg.call(this);">

报表视图

初始化:

m_list2.InsertColumn(0, _T("第一列"), LVCFMT_LEFT, 230);m_list2.InsertColumn(1, _T("第二列"), LVCFMT_LEFT, 230);m_icon_file16.Create(16, 16, ILC_COLOR16, 1, 1);m_icon_file32.Create(32, 32, ILC_COLOR32, 1, 1);m_icon_file16.Add(AfxGetApp()->LoadIcon(IDI_ICON_FILE16));m_icon_file32.Add(AfxGetApp()->LoadIcon(IDI_ICON_FILE32));m_list2.SetImageList(&m_icon_file32, LVSIL_NORMAL);m_list2.SetImageList(&m_icon_file16, LVSIL_SMALL);m_list2.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);
一文详解MFC List Co<em></em>ntrol 列表视图控件nerror="javascript:errorimg.call(this);">

增加一行:

void CDemo2Dlg::onBnClickedBtnAddrow(){	int cnt = m_list2.GetItemCount();	CString str;	str.Format(_T("第%d行,第1列"), cnt + 1);	m_list2.InsertItem(cnt, str, 0);	str.Format(_T("第%d行,第2列"), cnt + 1);	m_list2.SetItemText(cnt, 1, str);}
一文详解MFC List Co<em></em>ntrol 列表视图控件nerror="javascript:errorimg.call(this);">

删除一行:

void CDemo2Dlg::onBnClickedBtnDelrow(){	int cnt = m_list2.GetItemCount();	for (int i = cnt; i >= 0; i--) {		if (m_list2.GetItemState(i, LVIS_SELECTED) == LVIS_SELECTED)			m_list2.DeleteItem(i);	}}

设置报表样式:

一文详解MFC List Co<em></em>ntrol 列表视图控件nerror="javascript:errorimg.call(this);">

void CDemo2Dlg::OnCbnSelchangeCombo1(){	DWORD dwStyle;		switch (m_cbx_change_style.GetCurSel()) {	case 0:		dwStyle = LVS_ICON;		break;	case 1:		dwStyle = LVS_SMALLICON;		break;	case 2:		dwStyle = LVS_LIST;		break;	case 3:		dwStyle = LVS_REPORT;		break;	default:		return;	}	m_list2.ModifyStyle(LVS_TYPEMASK, dwStyle);}

视频讲解

视频加载中...


顶一下()     踩一下()

热门推荐

发表评论
0评