如何取得当前展开节点的HTREEITEM,和如何知道调用时是展开还是折回.

来源:互联网 发布:java设计模式详解pdf 编辑:程序博客网 时间:2024/06/17 00:08

void CMyTreeView::OnItemexpanding(NMHDR* pNMHDR, LRESULT* pResult) { NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR; // TODO: Add your control notification handler code here *pResult = 0; } 点击CTreeCtrl的一个节点旁的"+"时会调用OnItemexpanding()函数, 相关解决方法:1、点击CTreeCtrl的一个节点旁的"+"时会调用OnItemexpanding()函数,


推荐解答: 这是 NMTREEVIEW 结构的声明:typedef struct tagNMTREEVIEW { NMHDR hdr; UINT action; TVITEM itemOld; TVITEM itemNew; POINT ptDrag; } NMTREEVIEW, FAR *LPNMTREEVIEW; action 有以下可能取值:TVE_COLLAPSETVE_EXPAND当前展开节点的 HTREEITEM 是 pNMTreeView->itemNew.hItem。2、点击CTreeCtrl的一个节点旁的"+"时会调用OnItemexpanding()函数,推荐解答: pNMTreeView->itemOld是旧的Item的TVITEM结构指针,pNMTreeView->itemNew是新的Item的TVITEM结构指针,pNMTreeView->action是动作flag,表明是expand还是collapse。HTREEITEM在TVITEM结构里面。void CMyTreeView::OnItemexpanding(NMHDR* pNMHDR, LRESULT* pResult) {NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;LPTVITEM ptviNew, ptviOld;// TODO: Add your control notification handler code hereptviOld = pNMTreeView->itemOld;ptviNew = pNMTreeView->itemNew;switch (pNMTreeView->action){ case TVE_COLLAPSE: // 折叠 break; case TVE_EXPAND: // 展开 break;}*pResult = 0;}3、不好意思,写错了一点,itemNew和itemOld不是指针,而是structure本身。 :)

原创粉丝点击