社区
界面
帖子详情
tree control控件的节点可展开标志怎么设置
gaochizhen33
2012-02-07 02:37:52
在做一个项目,需要加载一个很大的资源树。如果在初始化阶段,将所有节点全部加上去,会等待几秒钟。现在想改成一级一级的添加。当用户点击每个节点前面的加号的时候,进行展开动作,同时会加载该节点下面的节点。可是在没有加载子节点的时候,该节点前面是没有可展开标志,即那个小加号。能不能通过代码,让该节点前面显示可展开标志啊?
如下 这是节点全部加载时的情况
这是分级加载节点的情况
怎么在分级加载的时候也在节点前面设置一个小加号?
...全文
445
12
打赏
收藏
tree control控件的节点可展开标志怎么设置
在做一个项目,需要加载一个很大的资源树。如果在初始化阶段,将所有节点全部加上去,会等待几秒钟。现在想改成一级一级的添加。当用户点击每个节点前面的加号的时候,进行展开动作,同时会加载该节点下面的节点。可是在没有加载子节点的时候,该节点前面是没有可展开标志,即那个小加号。能不能通过代码,让该节点前面显示可展开标志啊? 如下 这是节点全部加载时的情况 这是分级加载节点的情况 怎么在分级加载的时候也在节点前面设置一个小加号?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
feitianxiaozi
2014-07-29
打赏
举报
回复
会场有用的撒。。
beidatianwang
2012-04-12
打赏
举报
回复
非常感谢 9楼 taogx1824_126_com 我遇到相同问题,看了你的回答,现在解决了
gaochizhen33
2012-03-23
打赏
举报
回复
[Quote=引用 9 楼 taogx1824_126_com 的回复:]
添加控件事件 ON_NOTIFY(TVN_ITEMEXPANDING, IDC_TREELIST, &CVIS_ClientDlg::OnTvnItemexpandingTreelist)
void CVIS_ClientDlg::OnTvnItemexpandingTreelist(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMTREEVIEW ……
[/Quote]
thanks 下班了试试。。我先收藏下
taogx1824_126_com
2012-03-22
打赏
举报
回复
添加控件事件 ON_NOTIFY(TVN_ITEMEXPANDING, IDC_TREELIST, &CVIS_ClientDlg::OnTvnItemexpandingTreelist)
void CVIS_ClientDlg::OnTvnItemexpandingTreelist(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMTREEVIEW pNMTreeView = reinterpret_cast<LPNMTREEVIEW>(pNMHDR);
// TODO: 在此添加控件通知处理程序代码
HTREEITEM hcur = pNMTreeView->itemNew.hItem;
if (m_list.GetParentItem(hcur) == NULL)
{
if (pNMTreeView->action == TVE_EXPAND) //节点展开 +变-
{
......
}
else
{
if (pNMTreeView->action == TVE_COLLAPSE) //节点关闭 -变+
{
........
}
}
}
*pResult = 0;
}
希望对你有用
gaochizhen33
2012-02-08
打赏
举报
回复
这个是不是不能单独设置啊?
gaochizhen33
2012-02-07
打赏
举报
回复
[Quote=引用 4 楼 hdg3707 的回复:]
如果不能判断滚动条的位置,那就可以根据显示在界面的节点数,先显示一部分,剩下的在定时加载一部分直到全部加载完毕.
另外,如果还不行,就用线程来加载,这样也不算太麻烦,当在线程全部加载完毕后就退出线程
[/Quote]
使用多个线程来加载的话,用户在使用的过程中会感觉到视图的刷新,也不合适。
就像我们的文件夹目录,一开始只显示C D E F几个盘,当你点击了前面的加号,就现在该磁盘下面的子文件夹。主要是如果还没有加载子节点的话,父节点前面是没有加号的,用户会以为到头了。
gaochizhen33
2012-02-07
打赏
举报
回复
[Quote=引用 5 楼 worcy_kiddy 的回复:]
CTreeCtrl::Expand
TVE_EXPAND
[/Quote]
你说的这个是展开 跟我说的完全是两个东西
黑泡泡选手
2012-02-07
打赏
举报
回复
CTreeCtrl::Expand
TVE_EXPAND
hdg3707
2012-02-07
打赏
举报
回复
如果不能判断滚动条的位置,那就可以根据显示在界面的节点数,先显示一部分,剩下的在定时加载一部分直到全部加载完毕.
另外,如果还不行,就用线程来加载,这样也不算太麻烦,当在线程全部加载完毕后就退出线程
hdg3707
2012-02-07
打赏
举报
回复
我想这么多的节点肯定不能同时显示出来,应该是通过移动滚动条才能看到部分的,因此,能不能通过判断滚动条的位置,来加载当前在显示界面部分,这样当滚动条移到底时,就全部加载了
gaochizhen33
2012-02-07
打赏
举报
回复
上面那个是全部加载的情况,下边的是分级加载的情况
gaochizhen33
2012-02-07
打赏
举报
回复
图片没发上去,补上
tree
control
控件
消息汇总
根据MSDN上面翻译的, 以TVM_XXX形式存在,主要处理win32
控件
tree
,
MFC_VC_
Tree
_
Control
控件
使用详解
MFC中
Tree
_
Control
控件
使用详解,包括添加、删除、
展开
、收缩
节点
和风格
设置
等功能
Tree
control
的使用
Tree
Control
的单击响应 只遍历根
节点
,非递归遍历具有两层目录的
节点
递归遍历所有
节点
Tree
Control
树形
控件
树形
控件
的实现:有多级
节点
,点开,合并,一些基本的东西;
VS2010和MFC编程入门之31(常用
控件
:树形
控件
Tree
Control
下)
Tree
Control
的使用详解,包括
节点
的添加、删除、
展开
、收缩等 功能
界面
15,979
社区成员
115,896
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章