控件高手求助:CTreeCtrl::DeleteAllItems的问题

xiaolizi 2007-04-06 12:06:28
CTreeCtrl* pCtrl = (CTreeCtrl*)GetDlgItem(IDC_TREE1);

pCtrl->DeleteAllItems();
pCtrl->InsertItem("test");
pCtrl->InsertItem("test2");

类似这样的顺序调用,结果后面InsertItem的内容不会出现,这个是什么为什么。。
...全文
507 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
davylin 2008-06-07
  • 打赏
  • 举报
回复

快速清空树控件所有记录的方法:

ctrTree.SetRedraw(FALSE); //使树控件不可重画
ctrTree.DeleteAllItems(); //删除树的所有节点

//
// 这里可插入树的节点
//

ctrTree.SetRedraw(TRUE); //使树控件可重画
快乐鹦鹉 2007-04-06
  • 打赏
  • 举报
回复
你的工程关于树就这些代码么?
你的树设置了什么样的属性呢?
yecheng_110 2007-04-06
  • 打赏
  • 举报
回复
http://www.cppblog.com/gracelee/archive/2006/06/16/8623.html

CTreeCtrl::DeleteAllItems()的问题
在对话框中使用树控件,调用树控件的DeleteAllItems()后,再调用InsertItem()添加新项目,添加后不能显示新添加的内容。

在codeproject上找到了关于这方面的讨论。

解决方法如下:
m_tree.SetRedraw(FALSE);
//do erase and insert operation
m_tree.SetRedraw(TRUE);
m_tree.RedrawWindow();
拿节 2007-04-06
  • 打赏
  • 举报
回复
木有楼主将的情况啊!
不应该啊!
mynamelj 2007-04-06
  • 打赏
  • 举报
回复
InsertItem不止一个参数吧,首先要知道插入的位置,找到你要的父节点或根节点。
xiaolizi 2007-04-06
  • 打赏
  • 举报
回复

一点小思考:
我这边这个问题出现在CFormView上的CTreeCtrl,使用默认的树形控件属性。也许在CDialog中并不存在,这也是zhejiang9兄说的没有出现问题的原因,以上是我的猜测。
xiaolizi 2007-04-06
  • 打赏
  • 举报
回复
To yecheng_110() :

完美的解决了该问题!!!
大虾,请接受兄弟的三鞠躬~~~
并送上98分(其余2分给其他跟帖的兄弟),谢谢大家,谢谢~~~

15,979

社区成员

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

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