龙空技术网

一文详解MFC List Control 列表视图控件

黑猫编程 159

前言:

现在同学们对“mfc设置控件焦点”大体比较注意,看官们都需要知道一些“mfc设置控件焦点”的相关文章。那么小编同时在网络上搜集了一些对于“mfc设置控件焦点””的相关知识,希望同学们能喜欢,小伙伴们快快来了解一下吧!

List Control 控件

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

图像列表

图像列表(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);
报表视图

初始化:

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);

增加一行:

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);}

删除一行:

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);	}}

设置报表样式:

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);}
视频讲解

视频加载中...

标签: #mfc设置控件焦点 #mfc显示位图