I Want to check a state of checkbox item in the CExtTreeCtrl,
so I add a NM_CLICK notification handling function and run program.
When i click checkbox, but the HitTest(pt,&uFlags) returns TVHT_ONITEMRIGHT
So i changed CExtTreeCtrl to CTreeCtrl and run.
When i click checkbox, the HitTest(pt,&uFlags) returns TVHT_ONITEMSTATEICON correctly
What’s the problem?
BOOL CTestDlg::OnInitDialog()
{
CDialog::OnInitDialog();
HTREEITEM root = m_tree.InsertItem("D", NULL, NULL);
HTREEITEM item = m_tree.InsertItem("1", root, NULL);
m_tree.TreeItemInfoGet( item ).m_eCheckBoxType = CExtTreeCtrl::e_cbt_check_box;
m_tree.InsertItem("2", root, NULL);
return TRUE; // return TRUE unless you set the focus to a control
}
void CTestDlg::OnClickTree1(NMHDR* pNMHDR, LRESULT* pResult)
{
UINT uFlags;
//HTREEITEM hClickedItem = m_ItemTree.HitTest(pt, &uFlags);
DWORD pos = GetMessagePos();
CPoint pt(LOWORD(pos), HIWORD(pos));
m_tree.ScreenToClient(&pt);
HTREEITEM hClickedItem = m_tree.HitTest(pt,&uFlags);
if( hClickedItem != NULL && (uFlags & TVHT_ONITEMSTATEICON)!= 0 )
{
}
*pResult = 0;
}