CTreeCtrl控件的OnNMClickTree中的GetCheck()出错!解决方法
CTreeCtrl控件的OnNMClickTree中的GetCheck()出错!
程序中用了带复选框的CTreeCtrl控件,为了能够及时得到复选框选中情况在
void CPollPara_Dlg::OnNMClickTree(NMHDR *pNMHDR, LRESULT *pResult)中添加了如下代码:
NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
m_ctrltree.GetCheck(pNMTreeView-> itemNew.hItem);//调试该句出错。
我是在VS2005中调试的,已经尝试过了网上提到的很多方法,都失败了!请教各位高手该怎么办呢?
------解决方案--------------------
该消息的NMHDR*并没有说就是NMTREEVIEW*,可以采用HitTest检测当前点击了哪个节点
void CTestDlg::OnClickTree1(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
DWORD pos = GetMessagePos();
CPoint pt(LOWORD(pos), HIWORD(pos));
ScreenToClient(&pt);
UINT uFlags;
HTREEITEM hItem = m_Tree.HitTest(pt, &uFlags);
if(hItem)
{
.......
*pResult = 1;
}
*pResult = 0;
}
程序中用了带复选框的CTreeCtrl控件,为了能够及时得到复选框选中情况在
void CPollPara_Dlg::OnNMClickTree(NMHDR *pNMHDR, LRESULT *pResult)中添加了如下代码:
NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
m_ctrltree.GetCheck(pNMTreeView-> itemNew.hItem);//调试该句出错。
我是在VS2005中调试的,已经尝试过了网上提到的很多方法,都失败了!请教各位高手该怎么办呢?
------解决方案--------------------
该消息的NMHDR*并没有说就是NMTREEVIEW*,可以采用HitTest检测当前点击了哪个节点
void CTestDlg::OnClickTree1(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
DWORD pos = GetMessagePos();
CPoint pt(LOWORD(pos), HIWORD(pos));
ScreenToClient(&pt);
UINT uFlags;
HTREEITEM hItem = m_Tree.HitTest(pt, &uFlags);
if(hItem)
{
.......
*pResult = 1;
}
*pResult = 0;
}