<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[工欲善其事必先利其器，勿在浮砂筑高台]]></title><description><![CDATA[热爱客户端的小伙伴~]]></description><link>https://blog.csdn.net/qq316293804</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; qq316293804]]></copyright><item><title><![CDATA[将博客搬至CSDN]]></title><link>https://blog.csdn.net/qq316293804/article/details/140338428</link><guid>https://blog.csdn.net/qq316293804/article/details/140338428</guid><author>qq316293804</author><pubDate>Tue, 09 Jul 2024 10:45:00 +0800</pubDate><description><![CDATA[已经10年没写博客了，真快！
没想到这次是要彻底把博客搬家到csdn了，一个时代过去了~
]]></description><category></category></item><item><title><![CDATA[duilib入门文档、仿迅雷看看播放器 chm电子书]]></title><link>https://blog.csdn.net/qq316293804/article/details/19218709</link><guid>https://blog.csdn.net/qq316293804/article/details/19218709</guid><author>qq316293804</author><pubDate>Sat, 15 Feb 2014 01:08:31 +0800</pubDate><description><![CDATA[duilib入门简明教程.chm
http://download.csdn.net/detail/qq316293804/6923785


duilib进阶教程.chm
http://download.csdn.net/detail/qq316293804/6923793


仿迅雷播放器教程.chm
http://download.csdn.net/detail/qq]]></description><category></category></item><item><title><![CDATA[博客还是搬到csdn吧~]]></title><link>https://blog.csdn.net/qq316293804/article/details/140338488</link><guid>https://blog.csdn.net/qq316293804/article/details/140338488</guid><author>qq316293804</author><pubDate>Fri, 06 Dec 2013 21:33:00 +0800</pubDate><description><![CDATA[　　从csdn转到博客园是因为博客园开放了博客接口，方便发博客，再者博客样式也比较多，排版兼容性也较好。
　　but,
　　博客园的链接在多个群里进行了宣传，当时大概有2000多的访问量，但是一个月过去了，现在还是只有3000多而已。
　　而csdn只是在论坛发了一下，帖子就被推荐，博客也被推荐，嗯，没怎么宣传，同样是一个月，现在有15000的阅读量。
　　也就是说，如果将博客发到csdn，将会...]]></description><category></category></item><item><title><![CDATA[duilib进阶教程 -- 总结 (17)]]></title><link>https://blog.csdn.net/qq316293804/article/details/14228097</link><guid>https://blog.csdn.net/qq316293804/article/details/14228097</guid><author>qq316293804</author><pubDate>Wed, 06 Nov 2013 15:10:46 +0800</pubDate><description><![CDATA[整个教程的代码下载：http://download.csdn.net/detail/qq316293804/6502207 
　　（由于duilib进阶教程主要介绍界面，所以这个教程只给出界面相关的代码，完整代码请进《仿迅雷播放器教程》）


进阶教程汇总：
duilib进阶教程 -- 在MFC中使用duilib (1)

duilib进阶教程 -- 在duilib中使用MFC (2]]></description><category></category></item><item><title><![CDATA[2013 duilib入门简明教程 -- 总结 (20)]]></title><link>https://blog.csdn.net/qq316293804/article/details/14228027</link><guid>https://blog.csdn.net/qq316293804/article/details/14228027</guid><author>qq316293804</author><pubDate>Wed, 06 Nov 2013 15:09:53 +0800</pubDate><description><![CDATA[duilib的入门系列就到尾声了，再次提醒下，Alberl用的duilib版本是SVN上第387个版本，时间是2013.08.15~

这里给出Alberl最后汇总的一个工程，戳我下载，效果如图：




2013 duilib入门教程汇总：
2013 duilib入门简明教程 -- 前言(1)
2013 duilib入门简明教程 -- VS环境配置(2)]]></description><category></category></item><item><title><![CDATA[【【【超高仿】】】迅雷播放器教程 -- 总结(14)]]></title><link>https://blog.csdn.net/qq316293804/article/details/14162539</link><guid>https://blog.csdn.net/qq316293804/article/details/14162539</guid><author>qq316293804</author><pubDate>Tue, 05 Nov 2013 11:01:49 +0800</pubDate><description><![CDATA[代码下载：http://download.csdn.net/detail/u012248739/6502965]]></description><category></category></item><item><title><![CDATA[duilib进阶教程 -- 改进List控件 (16)]]></title><link>https://blog.csdn.net/qq316293804/article/details/140609671</link><guid>https://blog.csdn.net/qq316293804/article/details/140609671</guid><author>qq316293804</author><pubDate>Sun, 03 Nov 2013 00:02:00 +0800</pubDate><description><![CDATA[一、控件隐藏后，允许用代码操作所有行为。
　　在做播放器的时候，最常用的功能莫过于顺序播放、随机播放了，而当我们切换歌曲的时候，显然应该选中该歌曲，List的选中函数是SelectItem，但是调用此函数时，却发现有时候没有效果，原因是每当播放歌曲或电影时，会隐藏播放列表，这个时候SelectItem会返回false，当然，我们在SelectItem之前显示播放列表，SelectItem之后再隐...]]></description><category></category></item><item><title><![CDATA[duilib进阶教程 -- 设置资源路径 (15)]]></title><link>https://blog.csdn.net/qq316293804/article/details/140843695</link><guid>https://blog.csdn.net/qq316293804/article/details/140843695</guid><author>qq316293804</author><pubDate>Sat, 02 Nov 2013 23:23:00 +0800</pubDate><description><![CDATA[　　在前面的教程里，虽然图片都放到了skin文件夹里，但是XML却都在外面，当XML比较多时，就不太好看啦，如下图：
　　
　　所以需要整理一下，将XML也放入skin文件夹，这样exe的目录就简洁多了：
　　
　　将XML放入skin文件夹后，代码也要跟着变化哦，在duilib的Demo里经常可以看到如下代码：
　　(其中SetResourcePath是设置资源的路径，包括XML和图片等各种资...]]></description><category></category></item><item><title><![CDATA[duilib进阶教程 -- Container控件的bug (14)]]></title><link>https://blog.csdn.net/qq316293804/article/details/140609673</link><guid>https://blog.csdn.net/qq316293804/article/details/140609673</guid><author>qq316293804</author><pubDate>Sat, 02 Nov 2013 22:21:00 +0800</pubDate><description><![CDATA[　　在《duilib进阶教程 -- TreeView控件的bug (9)》里，Alberl发现了两个bug，并解决了其中一个，现在教程已经接近尾声啦，所以Alberl就解决了另外一个bug。
　　Bug现象：
　　第一次启动软件时，由于播放列表并没有文件，所以没有显示垂直滚动条，当我们拖入文件后，就显示了垂直滚动条，这个时候会自动调整子控件的宽度，于是一切显示正常。
　　但是当我们第二次启动软件...]]></description><category></category></item><item><title><![CDATA[duilib进阶教程 -- 响应windows原生消息和自定义消息(13)]]></title><link>https://blog.csdn.net/qq316293804/article/details/140609660</link><guid>https://blog.csdn.net/qq316293804/article/details/140609660</guid><author>qq316293804</author><pubDate>Sat, 02 Nov 2013 22:00:00 +0800</pubDate><description><![CDATA[一、windows原生消息
　　同样，入门教程只是给出了响应windows原生消息的方法，并没给出例子，这里以自适应屏幕分辨率为例。迅雷播放器虽然可以在启动的时候自动调整窗口大小，但是当屏幕分辨率实时改变时并没有调整窗口。我们做个改进，即可以实时调整大小，很明显，应该响应WM_DISPLAYCHANGE消息，而duilib自己处理windows消息的函数是在HandleMessage里，因此重载...]]></description><category></category></item><item><title><![CDATA[duilib进阶教程 -- 改进窗口拖动 (12)]]></title><link>https://blog.csdn.net/qq316293804/article/details/140609667</link><guid>https://blog.csdn.net/qq316293804/article/details/140609667</guid><author>qq316293804</author><pubDate>Sat, 02 Nov 2013 21:33:00 +0800</pubDate><description><![CDATA[　　现在大家应该都知道caption="0,0,0,32"，是指示标题栏区了吧，如果想要整个窗口都能拖动呢？ 那直接把高度改成和窗口一样不就得了~O(∩_∩)O~
　　嗯，这样是可以，比如窗口高度是600，那么我们指定caption="0,0,0,600"，这样整个窗口就可以拖动了，但是如果窗口大小改变了呢？假如调整窗口的大小到800，这个时候最下面的200个像素的高度就不能拖动啦，因此这里进行...]]></description><category></category></item><item><title><![CDATA[duilib进阶教程 -- 扩展duilib的消息 (11)]]></title><link>https://blog.csdn.net/qq316293804/article/details/140609665</link><guid>https://blog.csdn.net/qq316293804/article/details/140609665</guid><author>qq316293804</author><pubDate>Sat, 02 Nov 2013 20:15:00 +0800</pubDate><description><![CDATA[　　duilib并没有提供双击和右键消息，所以需要我们自行扩展，这里以添加双击消息为例，
　　在UIDefine.h里，我们只看到了DUI_MSGTYPE_CLICK消息，却没有看到双击消息，因此需要在这里添加一个双击消息：

　　#define DUI_MSGTYPE_DBCLICK                (_T("dbclick"))

　　在UIManager.h里可以看到UIE...]]></description><category></category></item><item><title><![CDATA[duilib进阶教程 -- 各种控件的响应 (10)]]></title><link>https://blog.csdn.net/qq316293804/article/details/140609956</link><guid>https://blog.csdn.net/qq316293804/article/details/140609956</guid><author>qq316293804</author><pubDate>Sat, 02 Nov 2013 14:55:00 +0800</pubDate><description><![CDATA[　　到上一个教程为止，界面显示的代码就都介绍完啦，现在开始介绍控件的响应，其实在《2013 duilib入门简明教程 -- 事件处理和消息响应 (17)》里已经列出了duilib自己定义的所有消息，并且前面也介绍了Button和Tab的响应，还是有小伙伴们不知道怎么响应其他控件，因此这里介绍一下其他控件的响应。
　　需要注意的是，如果要响应控件，则必须给控件指定一个唯一的ID，在windows编...]]></description><category></category></item><item><title><![CDATA[duilib进阶教程 -- TreeView控件的bug (9)]]></title><link>https://blog.csdn.net/qq316293804/article/details/140609948</link><guid>https://blog.csdn.net/qq316293804/article/details/140609948</guid><author>qq316293804</author><pubDate>Sat, 02 Nov 2013 08:53:00 +0800</pubDate><description><![CDATA[一、不自动调整子控件的宽度(TreeView宽度小于260时)
　　相信亲们用同样的代码，显示效果肯定和Alberl不一样吧~O(∩_∩)O~
　　嘿嘿，仔细对比下，看看你们的列表头背景图片是下面这样的么？
　　
　　细心的小伙伴们应该早就发现了，可以看到右边那个箭头并没有完全显示出来，这是因为TreeView又调皮啦！
　　最开始觉得是TreeView没有自动调整控件的宽度，去看了下代码，没啥...]]></description><category></category></item><item><title><![CDATA[duilib进阶教程 -- Label控件的bug (8)]]></title><link>https://blog.csdn.net/qq316293804/article/details/140609941</link><guid>https://blog.csdn.net/qq316293804/article/details/140609941</guid><author>qq316293804</author><pubDate>Sat, 02 Nov 2013 00:02:00 +0800</pubDate><description><![CDATA[　　上个教程说到了TreeView的文字不能垂直居中的问题，而我们用LabelUI其实是可以垂直居中的，为什么不说是TreeView的bug，而说是Label控件的bug呢？因为影响TreeView垂直居中的就是Label，可以发现LabelUI的【属性列表.XML】里有valign属性，而代码里却找不到，是因为valign属性被合并到align属性里去了，只要设置align="center"就...]]></description><category></category></item><item><title><![CDATA[duilib进阶教程 -- TreeView控件的不足 (7)]]></title><link>https://blog.csdn.net/qq316293804/article/details/140609942</link><guid>https://blog.csdn.net/qq316293804/article/details/140609942</guid><author>qq316293804</author><pubDate>Fri, 01 Nov 2013 17:28:00 +0800</pubDate><description><![CDATA[　　上一个教程中，虽然播放列表的框架和迅雷一样了，但是字体大小、文字居中还没有解决。如果是刚学duilib，搞定这个可不容易，因为在有了入门教程的指导后，很容易就想到去看【属性列表.XML】，但是当你试了一圈之后，发现font、itemfont、align、itemalign等等，都没有效果！
　　这个时候就只有去看duilib内部的代码了，和上个教程一样，虽然小伙伴们花一个晚上或者几个晚上就能...]]></description><category></category></item><item><title><![CDATA[duilib进阶教程 -- TreeView控件(6)]]></title><link>https://blog.csdn.net/qq316293804/article/details/140609943</link><guid>https://blog.csdn.net/qq316293804/article/details/140609943</guid><author>qq316293804</author><pubDate>Thu, 31 Oct 2013 23:35:00 +0800</pubDate><description><![CDATA[　　代码下载：http://download.csdn.net/detail/qq316293804/6483905
　　上一个教程中，界面已经和迅雷一模一样啦，大小和位置一个像素都不差哟，亏得Alberl调了好久，不过既然决定要山寨了，那当然得学习下华强北~O(∩_∩)O~
　　那么现在只剩下播放列表和四个网页啦，那四个网页很简单，用ActiveX控件和Tab控件就搞定了，具体参见《2013 ...]]></description><category></category></item><item><title><![CDATA[duilib进阶教程 -- 图片和文字的位置调整 (5)]]></title><link>https://blog.csdn.net/qq316293804/article/details/140609963</link><guid>https://blog.csdn.net/qq316293804/article/details/140609963</guid><author>qq316293804</author><pubDate>Thu, 31 Oct 2013 00:20:00 +0800</pubDate><description><![CDATA[　　已经有8个晚上没写教程啦，因为之后遇到了一些问题，主要是TreeView控件的问题，这个问题搞了几个晚上，然后还需要调试代码才能知道它的用法，虽然能够调试出来，但毕竟没什么含金量，只是重复劳动而已，相信很多前辈已经做过了。好吧，天朝的开源状况一向如此，重复造轮子的事情就由Alberl来终结吧，希望能给后面的小伙伴们节省时间，这里向那些提供Demo的大神们致敬，向duilib的作者致敬~O(∩...]]></description><category></category></item><item><title><![CDATA[duilib进阶教程 -- XML嵌套及自定义控件 (4)]]></title><link>https://blog.csdn.net/qq316293804/article/details/140609965</link><guid>https://blog.csdn.net/qq316293804/article/details/140609965</guid><author>qq316293804</author><pubDate>Tue, 22 Oct 2013 09:10:00 +0800</pubDate><description><![CDATA[　　代码下载：http://download.csdn.net/detail/qq316293804/6433937
　　之前入门教程里已经讲过了自定义控件，这里借着迅雷播放器再次举个例子。
　　1、我们先给迅雷播放器加入下面那一排按钮。

　　和上个教程一样，我们可以选择直接放在主XML里面，也可以选择放到Container里面，在这里，为了让主XML的代码更简洁一点，我们选择放到单独的XML...]]></description><category></category></item><item><title><![CDATA[duilib进阶教程 -- Container控件 (3)]]></title><link>https://blog.csdn.net/qq316293804/article/details/140609954</link><guid>https://blog.csdn.net/qq316293804/article/details/140609954</guid><author>qq316293804</author><pubDate>Mon, 21 Oct 2013 21:19:00 +0800</pubDate><description><![CDATA[　　前面两个教程的目的是教大家与MFC结合，那么从这篇起，将不再使用MFC，而使用纯win32项目，本文的所有知识已经在《duilib入门教程》里面讲过了，因此基础知识不再赘述。
　　代码下载：http://download.csdn.net/detail/qq316293804/6433161
　　效果如下(可拖拽边缘调节窗口大小，图片会自动居中)

　　此例子唯一需要说明的就是XML，代码如...]]></description><category></category></item></channel></rss>