MFC ListControl实现复选框的全选、反选

首先在创建 ListControl的时候要加上一个属性LVS_EX_CHECKBOXES

ListView_SetExtendedListViewStyle(m_lsCert.GetSafeHwnd(), m_List.GetExStyle() | LVS_EX_CHECKBOXES); 

这样 ListControl每一行数据的前边都会有一个复选框。

//点击全选
void CCertDlg::OnBnClickedButtonSelectall()
{
	// TODO: 在此添加控件通知处理程序代码
	for (int i=0;i<m_lsCert.GetItemCount();i++)
	{
		m_lsCert.SetCheck(i,TRUE);
	}
}


//点击反选
void CCertDlg::OnBnClickedButtonSelectinvert()
{
	// TODO: 在此添加控件通知处理程序代码
	for (int i=0;i<m_lsCert.GetItemCount();i++)
	{
		if (m_lsCert.GetCheck(i)==FALSE)  //未被选中的
		{
			m_lsCert.SetCheck(i,TRUE);
		}
		else  //选中的
		{
			m_lsCert.SetCheck(i,FALSE);
		}
	}
}

效果图
MFC ListControl实现复选框的全选、反选