标签:style blog class code java c
实现很简单,直接上代码:
1 void CCheckBoxTreeDlg::OnNMClickTree1(NMHDR *pNMHDR, LRESULT *pResult) 2 { 3 // TODO: 在此添加控件通知处理程序代码 4 CPoint point; 5 UINT uFlag; 6 HTREEITEM hTree; 7 BOOL bCheck; 8 GetCursorPos(&point); 9 m_treeTest.ScreenToClient(&point); 10 hTree = m_treeTest.HitTest(point, &uFlag); 11 12 if(hTree && (TVHT_ONITEMSTATEICON & uFlag)) 13 { 14 bCheck = m_treeTest.GetCheck(hTree); 15 SetChildCheck(hTree, !bCheck); 16 } 17 18 *pResult = 0; 19 } 20 // 设置子节点是否被选中 21 void CCheckBoxTreeDlg::SetChildCheck(HTREEITEM hRoot, BOOL bCheck) 22 { 23 hRoot = m_treeTest.GetChildItem(hRoot); //获取子项句柄 24 while (NULL != hRoot) 25 { 26 m_treeTest.SetCheck(hRoot, bCheck); 27 SetChildCheck(hRoot,bCheck); //递归调用 28 hRoot = m_treeTest.GetNextSiblingItem(hRoot); //获取兄弟的句柄 29 } 30 }
实现思路很简单,就是在CTreeCtrl控件的点击事件处理函数中判断点击是否是checkbox控件,如果是则级联修改点击项和子节点的checkbox选中状态。
其中最关键的是第10行和12行,用来判断点击的是不是checkbox。
CTreeCtrl 父结点联动子结点CheckBox,布布扣,bubuko.com
标签:style blog class code java c
原文地址:http://www.cnblogs.com/lit10050528/p/3720544.html