请教界面高手关于CTreeCtrl控件,非常感谢,给个主意也行

leexiaotian 2009-06-17 02:43:20
我动态的生成一颗树,所谓动态就是,根据其他的线程查找的结果,把节点插入树种,使用控件CTreeCtrl,我想要的效果是始终显示并选中第一个插入的节点,当节点超出控件高度时,会出现垂直滚动条,但是垂直滚动条向下移动,怎样才能不移动垂直滚动条,当插入节点时,只是滚动条的长度变短,就像从下面追加上而不显示一样,只是保持第一个插入的根一直显示,我用m_tree.SelectSetFirstVisible,因为动态生成的,界面抖动的非常厉害,请问大家怎么解决,需要重写滚动条事件吗?还是有其他方法,给个链接或方法都非常感谢。
...全文
34 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
schlafenhamster 2009-06-17
  • 打赏
  • 举报
回复
第一个插入的根一直显示,使用m_tree.SelectSetFirstVisible,以后不要再使用。
qq845284425 2009-06-17
  • 打赏
  • 举报
回复

mark
na_he 2009-06-17
  • 打赏
  • 举报
回复
继承于CTreeCtrl,动态创建,如果树的Item超过了区域,滚动条会自动显示出来,不需要特殊的处理。
下面给创建的语句。
nFlags = WS_VISIBLE | WS_CLIPSIBLINGS | WS_CHILD
|WS_TABSTOP | TVS_HASBUTTONS //delete TVS_HASLINES
| TVS_EDITLABELS | TVS_SHOWSELALWAYS;


m_pTreeCtrl->Create(nFlags,oRect, this, IDC_TVW_FOLDER);

15,979

社区成员

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

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