MFC树控件父Item与子Item的checkbox的联动

首先为树控件添加NM_CLICK消息,然后在消息响应函数加上下面代码即可

void CDlgFitleFile::OnClickTreeFiletype(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	CPoint     pt;
	UINT       uFlag;    
    BOOL       bCheck;
	HTREEITEM  hSelectedItem;
	HTREEITEM  hChildrenItem;
	HTREEITEM  hNextItem;

	uFlag = 0;
	pt = ::GetMessagePos();
	m_treeFileType.ScreenToClient(&pt);
    hSelectedItem = m_treeFileType.HitTest(pt, &uFlag);

	if (uFlag & TVHT_ONITEMSTATEICON)
	{
       m_treeFileType.SelectItem(hSelectedItem);
	   bCheck = m_treeFileType.GetCheck(hSelectedItem);	   
	   
	   if (m_treeFileType.ItemHasChildren(hSelectedItem))
	   {
		   hChildrenItem = m_treeFileType.GetChildItem(hSelectedItem);
		   while (hChildrenItem != NULL)
		   {
			   if (!bCheck)
			       m_treeFileType.SetCheck(hChildrenItem, TRUE);
			   else
				   m_treeFileType.SetCheck(hChildrenItem, FALSE);

			   hNextItem = m_treeFileType.GetNextItem(hChildrenItem, TVGN_NEXT);
			   hChildrenItem = hNextItem;
		   }
	   }	  
	}

	*pResult = 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值