前言:
现在同学们对“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);}视频讲解
视频加载中...