MFC ListCtrl的cheek框的全选和反选

ListCtrl的cheek框的全选和反选

  • 全选函数的实现
void SetAndAddSigDlg::OnBnClickedRadioAllSelect()

{

	for (int i = 0; i < m_Sig_list.GetItemCount(); i++) {

		m_Sig_list.SetCheck(i, TRUE);

		m_Sig_list.SetItemState(i, LVIS_SELECTED, LVIS_SELECTED);

	}

}
  • 反选的函数实现
void SetAndAddSigDlg::OnBnClickedRadioInvertSelect()

{

	BOOL state;

	for (int i = 0; i < m_Sig_list.GetItemCount(); i++) {

		state = m_Sig_list.GetCheck(i);

		if (state == FALSE) {

			m_Sig_list.SetItemState(i, LVIS_SELECTED, LVIS_SELECTED);

			m_Sig_list.SetCheck(i, TRUE);

		}

		else {

			m_Sig_list.SetItemState(i, ~LVIS_SELECTED, LVIS_SELECTED);

			m_Sig_list.SetCheck(i, FALSE);

		}

	}

}
  • 全选button调用
void SetAndAddSigDlg::OnBnClickedCheck3()
{
	// TODO: 在此添加控件通知处理程序代码
	OnBnClickedRadioAllSelect();
}
  • 反选button调用
void SetAndAddSigDlg::OnBnClickedCheck4()
{
	// TODO: 在此添加控件通知处理程序代码
	OnBnClickedRadioInvertSelect();
}
相对来说这个实现比较简单,根据自己的需要,放到自己对应的listctrl控件中就OK。
发布了84 篇原创文章 · 获赞 63 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/wsq119/article/details/103681973
MFC