工控编程吧
标题:
CListCtrl列表控件复选框组合使用
[打印本页]
作者:
qq263946146
时间:
2016-12-2 20:20
标题:
CListCtrl列表控件复选框组合使用
(, 下载次数: 3)
上传
点击文件名下载附件
CListCtrl列表控件复选框组合使用
功能展示
列表控件经常会与其他控件嵌套使用,如与编辑框组合,与列表框组合,与复选框组合,当前例程实现列表控件与复选框组合使用,效果如图。程序初始化给列表控件添加复选框及默认勾选些复选框,并设置复选框文字,双击复选框可获得复选框状态;
要点提示
列表控件使用复选框可使用其自身的成员函数实现SetExtendedStyle(LVS_EX_CHECKBOXES);
复选框的勾选状态设置可用其自身的成员函数SetCheck(m, bstate); m为子项索引,bstate为勾选选项;
勾选的状态可用函数GetCheck(m)获取,m为子项索引
实现功能
1.新建基于对话框的应用程序
2.拖拽一列表控件,关联变量 CListCtrl m_ctrlList;
3.在程序初始化初始化列表控件
//设置列表控件的报表显示方式
m_ctrlList.ModifyStyle(LVS_ICON | LVS_SMALLICON | LVS_LIST, LVS_REPORT);
//设置列表控件使用复选框
m_ctrlList.SetExtendedStyle(LVS_EX_CHECKBOXES);
//在列表控件中插入列
for (int n = 0; n < 4; n++)
{
CString strColumnHeading = _T("");
strColumnHeading.Format(_T("Column %d"), n);
m_ctrlList.InsertColumn(n, strColumnHeading, LVCFMT_LEFT, 100);
}
//在列表控件中插入行
for (int m = 0; m < 10; m++)
{
m_ctrlList.InsertItem(m, _T(""));
m_ctrlList.SetCheck(m, m%2);//隔行勾选
for (int n = 1; n < 4; n++)
{
CString strText = _T("");
strText.Format(_T("SubItem %d %d"), m, n);
m_ctrlList.SetItemText(m, n, strText);
}
}
复制代码
4.添加列表控件LVN_ITEMCHANGED消息的处理函数,实现复选框子项的状态切换;
void CGkbc8Dlg::OnItemchangedList1(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
if (pNMListView->uOldState == 0 && pNMListView->uNewState == 0)//都没状态就不是复选框
return;
if( m_ctrlList.GetCheck(pNMListView->iItem) )
m_ctrlList.SetItemText(pNMListView->iItem, pNMListView->iSubItem, _T("FALSE"));
else
m_ctrlList.SetItemText(pNMListView->iItem, pNMListView->iSubItem, _T("TRUE"));
*pResult = 0;
}
复制代码
5.添加列表控件NM_DBLCLK消息处理函数,实现双击子项时获取子项复选框的状态
void CGkbc8Dlg::OnDblclkList1(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
if(pNMListView->iItem == -1)
return;
CString sText;
if( m_ctrlList.GetCheck(pNMListView->iItem) )
sText.Format("第%d行已勾选",pNMListView->iItem);
else
sText.Format("第%d行未勾选",pNMListView->iItem);
MessageBox(sText);
}
复制代码
(, 下载次数: 0)
上传
点击文件名下载附件
[weixinlianxi]1[/weixinlianxi]
欢迎光临 工控编程吧 (https://www.gkbc8.com/)
Powered by Discuz! X3.4