duilib进阶教程 -- 总结 (17)】的更多相关文章

整个教程的代码下载: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做的,因此我们…
代码下载:http://download.csdn.net/detail/qq316293804/6483905 上一个教程中,界面已经和迅雷一模一样啦,大小和位置一个像素都不差哟,亏得Alberl调了好久,不过既然决定要山寨了,那当然得学习下华强北~O(∩_∩)O~ 那么现在只剩下播放列表和四个网页啦,那四个网页很简单,用ActiveX控件和Tab控件就搞定了,具体参见<2013 duilib入门简明教程 -- 复杂控件介绍 (13)>,那么接下来就来介绍播放列表的实现. 看到播放列表,小伙…
前面两个教程的目的是教大家与MFC结合,那么从这篇起,将不再使用MFC,而使用纯win32项目,本文的所有知识已经在<duilib入门教程>里面讲过了,因此基础知识不再赘述. 代码下载:http://download.csdn.net/detail/qq316293804/6433161 效果如下(可拖拽边缘调节窗口大小,图片会自动居中) 此例子唯一需要说明的就是XML,代码如下: <?xml version="1.0" encoding="utf-8&qu…
到上一个教程为止,界面显示的代码就都介绍完啦,现在开始介绍控件的响应,其实在<2013 duilib入门简明教程 -- 事件处理和消息响应 (17)>里已经列出了duilib自己定义的所有消息,并且前面也介绍了Button和Tab的响应,还是有小伙伴们不知道怎么响应其他控件,因此这里介绍一下其他控件的响应. 需要注意的是,如果要响应控件,则必须给控件指定一个唯一的ID,在windows编程里,每个控件的ID都是一个数字,如IDC_BUTTON_ 等等,可以用GetDlgItem()来获取控件的…
一.控件隐藏后,允许用代码操作所有行为. 在做播放器的时候,最常用的功能莫过于顺序播放.随机播放了,而当我们切换歌曲的时候,显然应该选中该歌曲,List的选中函数是SelectItem,但是调用此函数时,却发现有时候没有效果,原因是每当播放歌曲或电影时,会隐藏播放列表,这个时候SelectItem会返回false,当然,我们在SelectItem之前显示播放列表,SelectItem之后再隐藏播放列表就可以绕过这个问题,但始终不是个好办法,并且这和常规逻辑不符合,或者说和MFC的逻辑不符合,可以…
在前面的教程里,虽然图片都放到了skin文件夹里,但是XML却都在外面,当XML比较多时,就不太好看啦,如下图: 所以需要整理一下,将XML也放入skin文件夹,这样exe的目录就简洁多了: 将XML放入skin文件夹后,代码也要跟着变化哦,在duilib的Demo里经常可以看到如下代码: (其中SetResourcePath是设置资源的路径,包括XML和图片等各种资源:SetResourceZip是指资源都放到ListRes.zip文件里了.) CPaintManagerUI::SetInst…
一.windows原生消息 同样,入门教程只是给出了响应windows原生消息的方法,并没给出例子,这里以自适应屏幕分辨率为例.迅雷播放器虽然可以在启动的时候自动调整窗口大小,但是当屏幕分辨率实时改变时并没有调整窗口.我们做个改进,即可以实时调整大小,很明显,应该响应WM_DISPLAYCHANGE消息,而duilib自己处理windows消息的函数是在HandleMessage里,因此重载HandleMessage函数,加入如下代码: LRESULT CDuiFrameWnd::HandleM…
好人做到底,送佛送到西.虽然上一篇教程已经说得很详细了,但Alberl还是再举一个例子.上一篇教程的主窗口是MFC的,所以这篇教程把主窗口换成duilib的~O(∩_∩)O~ 1.我们利用<2013 duilib入门简明教程 -- 完整的自绘标题栏(8)>里的XML做为主窗口,并且把客户区的控件都去掉,换成一个自定义控件<Dialog />.将XML改名为XMP_MAIN.xml,并放到exe目录. 2.在CDuiFrameWnd::CreateControl()函数里,加入自定义…