2013年11月2日

duilib进阶教程 -- TreeView控件的bug (9)

摘要: 一、不自动调整子控件的宽度(TreeView宽度小于260时) 相信亲们用同样的代码,显示效果肯定和Alberl不一样吧~O(∩_∩)O~ 嘿嘿,仔细对比下,看看你们的列表头背景图片是下面这样的么? 细心的小伙伴们应该早就发现了,可以看到右边那个箭头并没有完全显示出来,这是因为TreeView又调皮啦! 最开始觉得是TreeView没有自动调整控件的宽度,去看了下代码,没啥问题,并且TestApp1里面那个tree也没出现这种现象,所以就一直以为是自己的XML代码出了问题。由于对duilib并不熟,所以只是稍微调试了一下,并没找到问题,就暂时没管。到后面其他效果都OK了,只剩下这个... 阅读全文

posted @ 2013-11-02 08:53 Alberl 阅读(7283) 评论(5) 推荐(0) 编辑

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

摘要: 上个教程说到了TreeView的文字不能垂直居中的问题,而我们用LabelUI其实是可以垂直居中的,为什么不说是TreeView的bug,而说是Label控件的bug呢?因为影响TreeView垂直居中的就是Label,可以发现LabelUI的【属性列表.XML】里有valign属性,而代码里却找不到,是因为valign属性被合并到align属性里去了,只要设置align="center"就可以水平垂直都居中,但是想要垂直居中,水平左对齐啥的,就犯难了,因此这里需要将两个属性分开,valign管垂直,align管水平,这样想要怎么组合都OK啦。 将CLabelUI::Set 阅读全文

posted @ 2013-11-02 00:02 Alberl 阅读(8476) 评论(0) 推荐(0) 编辑

2013年11月1日

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

摘要: 上一个教程中,虽然播放列表的框架和迅雷一样了,但是字体大小、文字居中还没有解决。如果是刚学duilib,搞定这个可不容易,因为在有了入门教程的指导后,很容易就想到去看【属性列表.XML】,但是当你试了一圈之后,发现font、itemfont、align、itemalign等等,都没有效果! 这个时候就只有去看duilib内部的代码了,和上个教程一样,虽然小伙伴们花一个晚上或者几个晚上就能搞出来,但一样没什么含金量,纯体力活,所以Alberl在这里告知一下小伙伴,省得重复掉坑。 虽然CTreeViewUI继承于CListUI,但是其font、itemfont、align、itemalig... 阅读全文

posted @ 2013-11-01 17:28 Alberl 阅读(9323) 评论(2) 推荐(0) 编辑

2013年10月31日

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

摘要: 代码下载:http://download.csdn.net/detail/qq316293804/6483905 上一个教程中,界面已经和迅雷一模一样啦,大小和位置一个像素都不差哟,亏得Alberl调了好久,不过既然决定要山寨了,那当然得学习下华强北~O(∩_∩)O~ 那么现在只剩下播放列表和四个网页啦,那四个网页很简单,用ActiveX控件和Tab控件就搞定了,具体参见《2013 duilib入门简明教程 -- 复杂控件介绍 (13)》,那么接下来就来介绍播放列表的实现。 看到播放列表,小伙伴们可能有各种实现方式: 1、用3个Tab控件,每个Tab控件里放一个List控件,不过这... 阅读全文

posted @ 2013-10-31 23:35 Alberl 阅读(12570) 评论(1) 推荐(0) 编辑

duilib进阶教程 -- 图片和文字的位置调整 (5)

摘要: 已经有8个晚上没写教程啦,因为之后遇到了一些问题,主要是TreeView控件的问题,这个问题搞了几个晚上,然后还需要调试代码才能知道它的用法,虽然能够调试出来,但毕竟没什么含金量,只是重复劳动而已,相信很多前辈已经做过了。好吧,天朝的开源状况一向如此,重复造轮子的事情就由Alberl来终结吧,希望能给后面的小伙伴们节省时间,这里向那些提供Demo的大神们致敬,向duilib的作者致敬~O(∩_∩)O~ 说说这8个晚上干了啥吧: 1、前两个晚上实现了Treeview的基本界面,因为Demo里只有一个Treeview的例子,但是和迅雷的播放列表相差甚远,【属性列表】里很多属性都是没用的,比... 阅读全文

posted @ 2013-10-31 00:20 Alberl 阅读(22482) 评论(17) 推荐(3) 编辑

2013年10月22日

duilib进阶教程 -- XML嵌套及自定义控件 (4)

摘要: 代码下载:http://download.csdn.net/detail/qq316293804/6433937 之前入门教程里已经讲过了自定义控件,这里借着迅雷播放器再次举个例子。 1、我们先给迅雷播放器加入下面那一排按钮。 和上个教程一样,我们可以选择直接放在主XML里面,也可以选择放到Container里面,在这里,为了让主XML的代码更简洁一点,我们选择放到单独的XML里面。而这个单独的XML就相当于一个自定义控件了,将控件名取为WndPlayPanel,XML取名为【WndPlayPanel.xml】,然后在CDuiFrameWnd::CreateControl里加入如下代... 阅读全文

posted @ 2013-10-22 09:10 Alberl 阅读(16777) 评论(15) 推荐(5) 编辑

2013年10月21日

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

摘要: 前面两个教程的目的是教大家与MFC结合,那么从这篇起,将不再使用MFC,而使用纯win32项目,本文的所有知识已经在《duilib入门教程》里面讲过了,因此基础知识不再赘述。 代码下载:http://download.csdn.net/detail/qq316293804/6433161 效果如下(可拖拽边缘调节窗口大小,图片会自动居中) 此例子唯一需要说明的就是XML,代码如下: ... 阅读全文

posted @ 2013-10-21 21:19 Alberl 阅读(13374) 评论(0) 推荐(1) 编辑

2013年10月20日

duilib进阶教程 -- 在duilib中使用MFC (2)

摘要: 好人做到底,送佛送到西。虽然上一篇教程已经说得很详细了,但Alberl还是再举一个例子。上一篇教程的主窗口是MFC的,所以这篇教程把主窗口换成duilib的~O(∩_∩)O~ 1、我们利用《2013 duilib入门简明教程 -- 完整的自绘标题栏(8)》里的XML做为主窗口,并且把客户区的控件都去掉,换成一个自定义控件。将XML改名为XMP_MAIN.xml,并放到exe目录。 2、在CDuiFrameWnd::CreateControl()函数里,加入自定义控件Dialog的创建: if (_tcsicmp(pstrClassName, _T("Dialog")) == 阅读全文

posted @ 2013-10-20 23:06 Alberl 阅读(12867) 评论(2) 推荐(2) 编辑

duilib进阶教程 -- 在MFC中使用duilib (1)

摘要: 由于入门教程的反响还不错,因此Alberl就以直播的形式来写《进阶教程》啦,本教程的前提: 1、请先阅读《仿迅雷播放器教程》 2、要有一定的duilib基础,如果还没,请先阅读《2013 duilib入门简明教程》。 3、下载基于VLC的MFC播放器(包含VLC等所有文件),csdn不允许上传相似的代码,因此后面的教程将不再上传VLC的dll、头文件等没有改变的文件。 《仿迅雷播放器教程 -- 基于VLC的MFC播放器 (6)》中界面是用MFC做的,因此我们要将它换成duilib。而在《2013 duilib入门简明教程 -- 结合win32和MFC (16)》中只讲了怎么在dui... 阅读全文

posted @ 2013-10-20 15:30 Alberl 阅读(29162) 评论(7) 推荐(1) 编辑

仿迅雷播放器教程 -- duilib界面(13)

摘要: 经过了这么多篇文章的讲解,相信大家也对界面库有一定了解了,用一个新的界面库,肯定要对它进行全方位考察。鉴于公司目前所有的产品都是MFC做的,全部转换成duilib肯定不现实,并且公司的很多项目逻辑和界面耦合性太高,光逻辑和界面分离就会搞死人,此处省略N字......,如果有任何一点没考察到,背负压力是小事,如果公司的产品出不来,那就是大事了!!! 因此根据公司的情况,很显然是老项目用duilib和MFC结合;新项目全部使用duilib,即使出现用duilib解决不了的问题,也可以用MFC来解决。所以要考察的最重要的一点就是与MFC结合的难度。不过要说明的是,其实公司并没有要求换界面,这些... 阅读全文

posted @ 2013-10-20 09:29 Alberl 阅读(11766) 评论(6) 推荐(2) 编辑

导航