2013年11月2日

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

摘要: 到上一个教程为止,界面显示的代码就都介绍完啦,现在开始介绍控件的响应,其实在《2013 duilib入门简明教程 -- 事件处理和消息响应 (17)》里已经列出了duilib自己定义的所有消息,并且前面也介绍了Button和Tab的响应,还是有小伙伴们不知道怎么响应其他控件,因此这里介绍一下其他控件的响应。 需要注意的是,如果要响应控件,则必须给控件指定一个唯一的ID,在windows编程里,每个控件的ID都是一个数字,如IDC_BUTTON_ 等等,可以用GetDlgItem()来获取控件的指针;而duilib的ID却不是数字,而是一个字符串,如name="button1" 阅读全文

posted @ 2013-11-02 14:55 Alberl 阅读(11065) 评论(5) 推荐(0) 编辑

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

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

posted @ 2013-11-02 08:53 Alberl 阅读(7307) 评论(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 阅读(8518) 评论(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 阅读(9388) 评论(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 阅读(12679) 评论(1) 推荐(0) 编辑

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

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

posted @ 2013-10-31 00:20 Alberl 阅读(22622) 评论(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 阅读(16834) 评论(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 阅读(13426) 评论(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 阅读(12911) 评论(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 阅读(29251) 评论(7) 推荐(1) 编辑

导航