CListCtrl控件用法

列表控件是基本经常用到的控件,这里总结一下,方便以后使用。

需要设置的属性
  1. View->Report:一般为报表
  2. Edit Labels->TRUE:控件可以重命名
  3. Always Show Selection->TRUE:设置选中焦点
变量绑定控件
CListCtrl m_list;//列表控件
	
void CControlDlg::DoDataExchange(CDataExchange* pDX)
{
	CAcUiDialog::DoDataExchange(pDX);
	DDX_Control(pDX, IDC_LIST, m_list);
}
设置风格
m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT);//可以选一行;
m_list.SetExtendedStyle(LVS_EX_GRIDLINES);//给列表加格;
m_list.SetExtendedStyle(LVS_EX_CHECKBOXES);//前面有勾选格
m_list.SetExtendedStyle(LVS_EX_HEADERDRAGDROP);//表头可以拖拽
插入列
m_list.InsertColumn(0,_T("姓名"),LVCFMT_CENTER,80);
m_list.InsertColumn(1,_T("性别"),LVCFMT_CENTER,80);
添加项
m_list.InsertItem(0,_T("张三"));
m_list.SetItemText(0,1,_T("男"));
得到选择项
POSITION pos = m_list.GetFirstSelectedItemPosition();
int nSel = m_list.GetNextSelectedItem(pos);
if (nSel < 0)
{
	AfxMessageBox(_T("请选择删除项!"));
}
控件消息函数参数
void CPreviewDlg::OnItemchangedList2(NMHDR *pNMHDR, LRESULT *pResult)
{
	LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
	
	if(pNMLV->uChanged==LVIF_STATE)
	{
		if(pNMLV->uNewState & LVIS_SELECTED)
		{
			int nItem = pNMLV->iItem;//当前选择的列表控件的行;
		}
	}

	*pResult = 0;
}
设置某行被选中

属性:Always Show Selection->TRUE

m_list.SetItemState(nIndexRow, LVNI_FOCUSED | LVIS_SELECTED, LVNI_FOCUSED | LVIS_SELECTED);
m_list.SetFocus();
得到所有列的个数
int nColumnCount = m_list.GetHeaderCtrl()->GetItemCount();
获取列名称
LVCOLUMN col;
wchar_t buffer[128];
col.mask = LVCF_TEXT;
col.cchTextMax = 128;
col.pszText = buffer;
m_list.GetColumn(3, &col);
MessageBox(buffer);
选中某一行并滚轮滚动到某一行

属性:Always Show Selection->TRUE

int nCount = m_list.GetItemCount();  
m_list.SetItemState(nCount-1, LVIS_SELECTED|LVIS_FOCUSED, LVIS_SELECTED|LVIS_FOCUSED);  
m_list.EnsureVisible(nCount-1, FALSE);    
m_list.SetFocus();
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值