MFC TreeControl爲複選框添加響應函數

1、使用Tree控件時,採用了CheckBox風格,但是如何響應複選框的點擊操作呢?具體實現如下:

(1)可以通過響應NM_CLICK消息來達到上述效果,並在其響應函數中做點擊測試,以確定點擊的複選框;

(2)首先添加該消息的響應函數,並添加代碼如下:

void CkaProjectCleanDlg::OnNMClickTree(NMHDR *pNMHDR, LRESULT *pResult)
{
	// TODO: 在此添加控件通知處理程序代碼

	CPoint pt = GetCurrentMessage()->pt;	//獲取當前鼠標點擊消息的座標點
	m_ctlTree.ScreenToClient(&pt);		//將鼠標的屏幕座標,轉換成樹形控件的客戶區座標

	UINT uFlags = 0;
	HTREEITEM hItem = m_ctlTree.HitTest(pt, &uFlags);//然後做點擊測試

	if ((hItem != NULL) && (TVHT_ONITEM & uFlags))//如果點擊的位置是在節點位置上面
	{
		m_ctlTree.SelectItem(hItem);
	}
	
	*pResult = 0;
}
(3)OK現在,進行單擊操作的複選框已經被選中了,它的item值就是hItem;

(4)另注:m_ctlTree是一個屬性控件的綁定變量;



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章