CTreectrl 双击不展开或收缩节点。
近日需要这个功能,网上搜了下,有的说自己截获消息有的说子类化,都比较麻烦,没有找到很好的解决办法,所以一直拖着没解决。
经研究,在OnNMDblclk函数中直接返回,也不能阻止expanding的消息。
偶然发现Itemexpanding 可以截获这个消息。只要将其中一个回调的参数
*pResult = TRUE; //这样就可以了。
不过这样一来所有的展开节点或收缩节点的用户操作都无效了。
于是我又想到了OnNMDblclk中的那个同样存在的参数:*pResult
同样在双击响应函数中设置为TRUE,就一切OK了。
void CLeftTreeView::OnNMDblclk(NMHDR *pNMHDR, LRESULT *pResult)
{
*pResult = TRUE;
}
这样双击树形控件节点时候就不再会展开或收缩了。比其他方法简单多了吧。