树形控件更改节点名称

小兵_小白 2013-07-31 11:25:06
如题。遇到情况是这样的。
UINT nFlags=TVHT_ONITEM;
HTREEITEM hItem = m_cDeviceGroupCtrl.HitTest(point, &nFlags);
CEdit * pTemp = m_cDeviceGroupCtrl.EditLabel(hItem);
这里的pTemp始终是为空值,hItem的值是有的。然后我用GetItemText函数能获取到节点的名称。但是pTemp始终为空,我找不到原因,哪位大神帮忙分析一下啊,万分感谢。我也试着删除了控件重新添加,但是还是为空。急等~
...全文
598 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
小兵_小白 2013-08-03
  • 打赏
  • 举报
回复
已经解决了,犯了个很2的错误,数控是不可编辑的,设置一下风格就好了。
schlafenhamster 2013-08-01
  • 打赏
  • 举报
回复
void CLeftView::OnBeginlabeledit(NMHDR* pNMHDR, LRESULT* pResult) {// For control 802D dir.s,rename is not allowed! TV_DISPINFO* pTVDispInfo = (TV_DISPINFO*)pNMHDR; // TODO: Add your control notification handler code here CMainFrame* pMain=(CMainFrame*)AfxGetMainWnd(); char pathname[MAX_PATH]; BOOL MyPC=pMain->GetComboPath(pathname); if(!MyPC) *pResult = TRUE;// finish "rename" else *pResult = 0; } 要么 直接 CTreeCtrl::SetItemText
allenhiman 2013-08-01
  • 打赏
  • 举报
回复
两个勋章哥 能不能帮我解决下问题啊 http://bbs.csdn.net/topics/390535070
allenhiman 2013-08-01
  • 打赏
  • 举报
回复
// Make sure the focus is set to the tree control. m_TreeCtrl.SetFocus(); // Show the edit control on the label of the selected item. // The tree control must have the TVS_EDITLABELS style set. HTREEITEM hSel = m_TreeCtrl.GetSelectedItem(); CEdit* pmyEdit = m_TreeCtrl.EditLabel(hSel); ASSERT(pmyEdit != NULL);
schlafenhamster 2013-08-01
  • 打赏
  • 举报
回复
要响应 消息 。 不是 直接取的
allenhiman 2013-08-01
  • 打赏
  • 举报
回复
同时应确定 该ITEM已经被选中
allenhiman 2013-08-01
  • 打赏
  • 举报
回复
m_TreeCtrl.SetFocus(); UINT nFlags=TVHT_ONITEM; HTREEITEM hItem = m_cDeviceGroupCtrl.HitTest(point, &nFlags); CEdit * pTemp = m_cDeviceGroupCtrl.EditLabel(hItem);
向立天 2013-08-01
  • 打赏
  • 举报
回复
你的树控件是可编辑的么

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧