记录MFC项目中CListCtrl添加复选框,实现单选步骤
添加复选框
绑定控件变量
CListCtrl m_ctrList;
OnInitDialog函数中添加
m_ctrList.SetExtendedStyle(LVS_EX_CHECKBOXES);
单选
CListCtrl 添加事件处理程序LVN_ITEMCHANGED
int m_nPreSel = -1; //记录上次多选框为选中状态的项
void CxxDialog::OnLvnItemchangedListSeltab(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
// TODO: 在此添加控件通知处理程序代码
if (pNMLV->uNewState==0x2000&&pNMLV->uOldState==0x1000) //复选框选中状态
{
if (m_nPreSel!=-1&&m_nPreSel!=pNMLV->iItem)
{
m_ctrListSelTab.SetCheck(m_nPreSel,FALSE); //设置上次选中状态复选框为未选中状态
}
m_nPreSel = pNMLV->iItem;
}
*pResult = 0;
}