一、不自动调整子控件的宽度(TreeView宽度小于260时)

  相信亲们用同样的代码,显示效果肯定和Alberl不一样吧~O(∩_∩)O~

  嘿嘿,仔细对比下,看看你们的列表头背景图片是下面这样的么?

  

  细心的小伙伴们应该早就发现了,可以看到右边那个箭头并没有完全显示出来,这是因为TreeView又调皮啦!

  最开始觉得是TreeView没有自动调整控件的宽度,去看了下代码,没啥问题,并且TestApp1里面那个tree也没出现这种现象,所以就一直以为是自己的XML代码出了问题。由于对duilib并不熟,所以只是稍微调试了一下,并没找到问题,就暂时没管。到后面其他效果都OK了,只剩下这个问题了,当然要解决啦,因为迅雷在不同分辨率下,大小是不一样的,所以Alberl也模仿了迅雷,结果发现在有些分辨率下,播放列表可以显示完全。而Alberl只是调整了窗口大小以及播放列表的宽度,再接着将背景图片放到TestApp1的tree里面,也OK,不过发现拖动TestApp1时,播放列表也有时显示不完全,再重现了几次这些情况,立马就发现问题了,TestApp1在小于一定宽度的时候,播放列表就显示不全了,按道理不管宽度多宽,子控件的宽度都会自动调整啊,于是量了一下出现问题的宽度,差不多是260左右,接着就去调代码,发现在CTreeNodeUI的构造函数里有这样一行代码:this->SetFixedWidth(250);  和260这么接近,于是就一下子解决了这个问题。嘿嘿,看来一个问题暂时解决不了,隔几天再过来看是很有道理滴~O(∩_∩)O~

  解决方案就是:

  将this->SetFixedWidth(250);  注释掉即可。

二、不自动调整子控件的宽度(TreeNode的高度在一启动就超过TreeView时)

  在Alberl做完整个效果后,又发现了一个bug,

  最开始打开播放器的时候是下面这样的,

  

  好家伙,和迅雷差不多啊?

  嗯,这个是正常的,那么我们接着拖入一些文件,

  

  这个时候显示了垂直滚动条,并且调整了列表的宽度,也是正常的,好家伙,连滚动条都和迅雷一样了~O(∩_∩)O~

  不过当我们关掉软件,再次打开的时候,就成这样了:

  咦,怎么那三个按钮显示到外面去了? 并且点击无效!

  不过触发一次刷新后,就正常了,比如最小化,或者调整窗口大小。

  其实这个并不仅仅是那三个按钮显示到外面去了,可以发现表头的图片也不显示箭头了,很显然,和上面介绍的那个bug是类似的。

  不过经过初步调试,并没有找到问题,由于Alberl为了继续写教程,就没管这个问题了,去群里问了也没人回答,可能是因为用TreeView的比较少吧?于是Alberl就继续写教程啦~O(∩_∩)O~

  这个问题Alberl当然能够解决,但是Alberl不喜欢重复造轮子,肯定有大神们做过了,不过这个问题也不是什么难解决的问题,所以Alberl希望小伙伴们能够在Alberl写完这个教程之前,就提供解决方案~O(∩_∩)O~

  当然,如果Alberl写完这个教程后,还没人提供的话,就只有去调试了,都做到这一步了,也不差那么一点,干脆就解决它呗。

  有心想解决这个问题的大神请注意啦,Alberl在这里提供几个现象:

1、如果给TreeView显示滚动条,那么就很容易观察是否有问题啦。用以下简单代码即可复现问题:

        <TreeView height="60" bkcolor="#FF00FF00" vscrollbar="true" hscrollbar="true" >
<TreeNode height="33" bkcolor="#FF0000FF" />
<TreeNode height="33" bkcolor="#FF00FFFF" />
</TreeView>

  所以第一个问题如果加上hscrollbar="true",可以发现只要宽度小于260,就会出现滚动条,这就说明问题复现了,当然,这个问题已经解决啦。

2、第二个问题如果加上vscrollbar="true" ,可以发现只要出现垂直滚动条,问题就复现啦。

  这个问题和动态添加或静态添加TreeNode没有关系,只要在软件初始化的时候,加上了TreeNode,当其显示垂直滚动条的时候,就可以复现问题。

  嗯,希望小伙伴们在Alberl写完教程之前,提供解决方案哟~O(∩_∩)O~

教程接近尾声啦,第二个bug也解决了,请见http://www.cnblogs.com/Alberl/p/3404393.html

duilib进阶教程 -- TreeView控件的bug (9)的更多相关文章

  1. duilib进阶教程 -- Container控件的bug (14)

    在<duilib进阶教程 -- TreeView控件的bug (9)>里,Alberl发现了两个bug,并解决了其中一个,现在教程已经接近尾声啦,所以Alberl就解决了另外一个bug. ...

  2. duilib进阶教程 -- TreeView控件(6)

    代码下载:http://download.csdn.net/detail/qq316293804/6483905 上一个教程中,界面已经和迅雷一模一样啦,大小和位置一个像素都不差哟,亏得Alberl调 ...

  3. duilib进阶教程 -- Label控件的bug (8)

    上个教程说到了TreeView的文字不能垂直居中的问题,而我们用LabelUI其实是可以垂直居中的,为什么不说是TreeView的bug,而说是Label控件的bug呢?因为影响TreeView垂直居 ...

  4. duilib进阶教程 -- TreeView控件的不足 (7)

    上一个教程中,虽然播放列表的框架和迅雷一样了,但是字体大小.文字居中还没有解决.如果是刚学duilib,搞定这个可不容易,因为在有了入门教程的指导后,很容易就想到去看[属性列表.XML],但是当你试了 ...

  5. duilib进阶教程 -- 各种控件的响应 (10)

    到上一个教程为止,界面显示的代码就都介绍完啦,现在开始介绍控件的响应,其实在<2013 duilib入门简明教程 -- 事件处理和消息响应 (17)>里已经列出了duilib自己定义的所有 ...

  6. duilib进阶教程 -- Container控件 (3)

    前面两个教程的目的是教大家与MFC结合,那么从这篇起,将不再使用MFC,而使用纯win32项目,本文的所有知识已经在<duilib入门教程>里面讲过了,因此基础知识不再赘述. 代码下载:h ...

  7. 【ASP.NET 进阶】TreeView控件学习

    这几天上班没事做,也不好打酱油,学点没接触过的新东西吧,基本了解了下TreeView控件. TreeView 控件用于在树结构中显示分层数据,例如目录或文件目录等. 下面看代码吧: 1.效果图 2.静 ...

  8. 百度地图Api进阶教程-默认控件和自定义控件2.html

    <!DOCTYPE html> <html> <head> <meta name="viewport" content="ini ...

  9. duilib进阶教程 -- 总结 (17)

    整个教程的代码下载:http://download.csdn.net/detail/qq316293804/6502207 (由于duilib进阶教程主要介绍界面,所以这个教程只给出界面相关的代码,完 ...

随机推荐

  1. 【3dsmax2016】安装图文教程、破解注册以及切换语言方法

    第一步:安装3dsmax2014 64位中文版 第二步:解压3dsmax2014 64位中文版安装包 第三步:选择安装产品 第四步:接受相关协议 第五步:产品序列号和密钥 第六步:产品子组件选择 第七 ...

  2. windows 下重置 mysql 的 root 密码

    今天发现 WordPress 连接不上数据库,登录 window server 服务器查看,所有服务均运行正常. 使用 root 账号登录 mysql 数据库,结果提示密码不匹配.我突然意识到,服务器 ...

  3. oracle data integrator与大数据平台的集成

    在最新版本的ODI中,通过使用各种知识模块,可在统一的界面上实现对传统数据库.hive, pig, spark, hdfs等的ETL操作,满足在同一系统或采用相同的方式实现ETL功能. 详细的内容可参 ...

  4. PID控制器(比例-积分-微分控制器)- IV

    调节/测量放大电路电路图:PID控制电路图 如图是PlD控制电路,即比例(P).积分(I).微分(D)控制电路. A1构成的比例电路与环路增益有关,调节RP1,可使反相器的增益在0·5一∞范围内变化; ...

  5. PL/SQL中复制中文再粘贴出现乱码问题的解决【转】

    前不久!我对我的windowsxp做了一番大规模的设置:包括区域.系统.网络等方面的,结果当我设置完成以后,发现如果我从一些软件上复制内容到记事本里面会出现乱码,而且如果复制到word里面也不能够正常 ...

  6. 从UEditor内容中获取指定节点值(转)

    今天吐槽一下百度的富文本编辑器UEditor,这种富文本编辑器极大地方便我们上传文件,开发人员无需编写任何上传代码,只需配置几个路径即可.但高度集成的东西有时也显得笨重,灵活度不高.比如:编辑器中我既 ...

  7. AWK常用技巧

    1.1 介绍 awk其名称得自于它的创始人 Alfred Aho .Peter Weinberger 和 Brian Kernighan 姓氏的首个字母.实际上 AWK 的确拥有自己的语言: AWK ...

  8. Android架构初探

    #一 背景点评美团合并之后,业务需要整合,我们部门的几条业务需要往美团平台迁移,为了降低迁移成本,开发和维护成本,以及将来可能要做的单元测试,需要对架构进行相应的调整.之前的代码都堆在Activity ...

  9. 微软BI SSIS 2012 辅助阅读博客

    大家可以根据对应的视频课程名称查找相关的辅助阅读博客,有少量辅助阅读博客和视频课程讲解内容相同,大部分都是拓展总结部分.希望大家在学完每一个视频课程之后看看相关博客内容,这样可以在知识面和深度上继续得 ...

  10. 【Zookeeper】源码分析之Leader选举(二)之FastLeaderElection

    一.前言 前面学习了Leader选举的总体框架,接着来学习Zookeeper中默认的选举策略,FastLeaderElection. 二.FastLeaderElection源码分析 2.1 类的继承 ...