在OnClick中响应事件 ,单击打开
DWORD dwPos;
POINT pt;
HTREEITEM hItem;
UINT uFlag;
dwPos = ::GetMessagePos();
POINTSTOPOINT(pt, MAKEPOINTS(dwPos));
m_Tree.ScreenToClient(&pt);
if((hItem = m_optionTree.HitTest(pt, &uFlag)) && (uFlag & TVHT_ONITEM))
{
if(m_Tree.ItemHasChildren(hItem))
{
m_Tree.Expand(hItem, TVE_TOGGLE);
}
}
*pResult = 0;
都太麻烦,可以设置 一个风格 TVS_SINGLEEXPAND ,这个是微软已实现的功能。(未尝试过)
先对根节点使用expand,然后对准备展开的子节点使用select.
具体如下: m_wndTree.Expand(hTree,TVE_EXPAND);//其中hTree为根节点的HTREEITEM m_wndTree.Select(hItem,TVGN_FIRSTVISIBLE);//其中hItem为子节点的HTREEITEM |