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

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本身。 :)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值