代码下载:http://download.csdn.net/detail/qq316293804/6433937 之前入门教程里已经讲过了自定义控件,这里借着迅雷播放器再次举个例子. 1.我们先给迅雷播放器加入下面那一排按钮. 和上个教程一样,我们可以选择直接放在主XML里面,也可以选择放到Container里面,在这里,为了让主XML的代码更简洁一点,我们选择放到单独的XML里面.而这个单独的XML就相当于一个自定义控件了,将控件名取为WndPlayPanel,XML取名为[WndPlayPa…
整个教程的代码下载:http://download.csdn.net/detail/qq316293804/6502207 (由于duilib进阶教程主要介绍界面,所以这个教程只给出界面相关的代码,完整代码请进<仿迅雷播放器教程>) 进阶教程汇总: duilib进阶教程 -- 在MFC中使用duilib (1) duilib进阶教程 -- 在duilib中使用MFC (2) duilib进阶教程 -- Container控件 (3) duilib进阶教程 -- XML嵌套及自定义控件 (4)…
在<duilib进阶教程 -- TreeView控件的bug (9)>里,Alberl发现了两个bug,并解决了其中一个,现在教程已经接近尾声啦,所以Alberl就解决了另外一个bug. Bug现象: 第一次启动软件时,由于播放列表并没有文件,所以没有显示垂直滚动条,当我们拖入文件后,就显示了垂直滚动条,这个时候会自动调整子控件的宽度,于是一切显示正常. 但是当我们第二次启动软件时,由于软件会加载文件到播放列表,所以一开始就显示了垂直滚动条,但这个时候并没有自动调整子控件的宽度,所以子控件显示…
由于入门教程的反响还不错,因此Alberl就以直播的形式来写<进阶教程>啦,本教程的前提: 1.请先阅读<仿迅雷播放器教程> 2.要有一定的duilib基础,如果还没,请先阅读<2013 duilib入门简明教程>. 3.下载基于VLC的MFC播放器(包含VLC等所有文件),csdn不允许上传相似的代码,因此后面的教程将不再上传VLC的dll.头文件等没有改变的文件. <仿迅雷播放器教程 -- 基于VLC的MFC播放器 (6)>中界面是用MFC做的,因此我们…
前面两个教程的目的是教大家与MFC结合,那么从这篇起,将不再使用MFC,而使用纯win32项目,本文的所有知识已经在<duilib入门教程>里面讲过了,因此基础知识不再赘述. 代码下载:http://download.csdn.net/detail/qq316293804/6433161 效果如下(可拖拽边缘调节窗口大小,图片会自动居中) 此例子唯一需要说明的就是XML,代码如下: <?xml version="1.0" encoding="utf-8&qu…
代码下载:http://download.csdn.net/detail/qq316293804/6483905 上一个教程中,界面已经和迅雷一模一样啦,大小和位置一个像素都不差哟,亏得Alberl调了好久,不过既然决定要山寨了,那当然得学习下华强北~O(∩_∩)O~ 那么现在只剩下播放列表和四个网页啦,那四个网页很简单,用ActiveX控件和Tab控件就搞定了,具体参见<2013 duilib入门简明教程 -- 复杂控件介绍 (13)>,那么接下来就来介绍播放列表的实现. 看到播放列表,小伙…
好人做到底,送佛送到西.虽然上一篇教程已经说得很详细了,但Alberl还是再举一个例子.上一篇教程的主窗口是MFC的,所以这篇教程把主窗口换成duilib的~O(∩_∩)O~ 1.我们利用<2013 duilib入门简明教程 -- 完整的自绘标题栏(8)>里的XML做为主窗口,并且把客户区的控件都去掉,换成一个自定义控件<Dialog />.将XML改名为XMP_MAIN.xml,并放到exe目录. 2.在CDuiFrameWnd::CreateControl()函数里,加入自定义…
在前面的教程里,虽然图片都放到了skin文件夹里,但是XML却都在外面,当XML比较多时,就不太好看啦,如下图: 所以需要整理一下,将XML也放入skin文件夹,这样exe的目录就简洁多了: 将XML放入skin文件夹后,代码也要跟着变化哦,在duilib的Demo里经常可以看到如下代码: (其中SetResourcePath是设置资源的路径,包括XML和图片等各种资源:SetResourceZip是指资源都放到ListRes.zip文件里了.) CPaintManagerUI::SetInst…
到上一个教程为止,界面显示的代码就都介绍完啦,现在开始介绍控件的响应,其实在<2013 duilib入门简明教程 -- 事件处理和消息响应 (17)>里已经列出了duilib自己定义的所有消息,并且前面也介绍了Button和Tab的响应,还是有小伙伴们不知道怎么响应其他控件,因此这里介绍一下其他控件的响应. 需要注意的是,如果要响应控件,则必须给控件指定一个唯一的ID,在windows编程里,每个控件的ID都是一个数字,如IDC_BUTTON_ 等等,可以用GetDlgItem()来获取控件的…
已经有8个晚上没写教程啦,因为之后遇到了一些问题,主要是TreeView控件的问题,这个问题搞了几个晚上,然后还需要调试代码才能知道它的用法,虽然能够调试出来,但毕竟没什么含金量,只是重复劳动而已,相信很多前辈已经做过了.好吧,天朝的开源状况一向如此,重复造轮子的事情就由Alberl来终结吧,希望能给后面的小伙伴们节省时间,这里向那些提供Demo的大神们致敬,向duilib的作者致敬~O(∩_∩)O~ 说说这8个晚上干了啥吧: 1.前两个晚上实现了Treeview的基本界面,因为Demo里只有一…