//响应单击Tree控件的事件
void CDlgTreeTest::OnNMClickTreeLayers(NMHDR *pNMHDR, LRESULT *pResult)
{
// TODO: 在此添加控件通知处理程序代码
CPoint pt( GetMessagePos() );
m_ctrlTreeLyrs.ScreenToClient(&pt);
UINT uFlags = 0;
HTREEITEM hItem = m_ctrlTreeLyrs.HitTest( pt, &uFlags );
if (uFlags & TVHT_ONITEMSTATEICON)//点击在CheckBox上
{
m_ctrlTreeLyrs.SelectItem(hItem);//选中当前行
BOOL bCheck = m_ctrlTreeLyrs.GetCheck(hItem);
SetItemCheckState(hItem,!bCheck);
}
*pResult = 0;
}
//设置checkbox的选择状态
void CDlgTreeTest::SetItemCheckState(HTREEITEM hItem, BOOL bCheck)
{
SetChildCheck(hItem, bCheck);
SetParentCheck(hItem, bCheck);
}
//设置父节点的选中状态
void CDlgTreeTest::SetParentCheck(HTREEITEM hItem,BOOL bCheck)
{
HTREEI