- 博客(112)
- 资源 (26)
- 收藏
- 关注
原创 修复duilib库UISlider控件的4个bug
//===========================================================================================// 2014.7.28 redrain修改,QQ:491646717,有疑问或者bug2请联系我// 修改的代码的DoEvent部分的逻辑借鉴和复制了网友 快樂每一天(群昵称 花落半歌,QQ:84886
2014-07-28 12:43:22 3442 3
原创 使用libzplay库封装一个音频类
装载请说明原地址,谢谢~~ 前两天我已经封装好一个duilib中使用的webkit内核的浏览器控件和一个基于vlc的用于播放视频的视频控件,这两个控件可以分别用在放酷狗播放器的乐库功能和MV功能上,也可以用于其他duilib项目,说起来做仿酷狗程序,但是至今我虽然把仿酷狗的主界面做好了,但是还没有播放音乐的功能,所以今天就再封装一个音频类。 我以前并不怎么使用音频和视频的
2014-07-27 15:22:02 4885 1
原创 给Webkit内核的浏览器控件增加互交功能
昨天封装了基于webkit的wke浏览器内核,做成了duilib的浏览器控件,实现了浏览功能,但是单单的浏览功能还不满足需求,在我的仿酷狗项目中乐库的功能需要与浏览器互交。 大家知道在使用酷狗浏览器时,右侧的乐库,当我们选中了某个音乐,这时酷狗就会去缓冲并且播放响应的歌曲。本身浏览器与c++的窗体是不会互交的。而酷狗使用的IE浏览器内核,在c++代码中对CHtmlView类进行继承和重写
2014-07-26 15:55:03 12713 4
原创 将VLC库封装为duilib的万能视频播放控件
昨天封装好了基于webkit的浏览器控件,修复了duilib的浏览器功能的不足,而我的仿酷狗播放器项目中不光需要浏览器,同时也需要视频播放功能,也就是完成MV的功能。所以我打算封装个视频播放控件。 既然要封装视频播放控件,那就应该封装一个功能强大,不只是用在这个项目,也为将来可能出现的项目做准备。以前不怎么接触视频播放这块,所以查了很多资料。目前市场上90%的视频播放器都是基于这三个构架
2014-07-26 15:53:57 6718 3
原创 将webkit内核封装为duilib的浏览器控件
原本的duilib是自带浏览器控件的,但是使用了IE内核,我在做仿酷狗音乐播放器时,在右侧乐库要用到浏览器控件,而我使用自带的IE控件却发现了不少缺点,这也是duilib一直没有解决的,编程群里的朋友也反映IE控件不好用。而目前最常用的浏览器内核一个是IE内核,另一个是webkit内核。 先简单介绍一下这个webkit内核 WebKit 是一个开
2014-07-26 15:52:46 6029 3
原创 仿酷狗音乐播放器开发日志十四——右侧乐库的实现
在使用酷狗播放器时,左侧功能块和右侧乐库功能是最常用的了,如果要下载音乐或者搜索自己喜欢的歌曲那就少不了右侧乐库。原版的乐库的截图如下 他拥有5个分类,分别是乐库、电台、MV、直播、歌词。从外观看,除了歌词模块外,其他的都是内嵌网页,实际上的确是内嵌网页,怎么判断是否为网页?使用任意一个句柄查看工具,这里使用邓总的彗星小助手来查看。 可以看到这个窗口是拥有句柄的,而且类名为
2014-07-26 15:52:04 3003
原创 仿酷狗音乐播放器开发日志十三——左侧功能块的完善
发了6篇日志记录了播放列表控件的实现步骤,而这个播放列表只是左侧功能块的七分之一而已,还有其余6个功能需要做,他们分别是:本地列表、我的收藏、音乐电台、附近、临时播放、我的下载、更多。如图 我看了一下每个功能块的结构,其中有几个功能块和已经开发完成的播放列表控件非常类似,其他的功能也相对不难做。最麻烦的是音乐电台模块,这个模块的每个列表项类似音乐播放控件的,但是还不一样。这个模块的截
2014-07-26 15:49:50 5256
原创 仿酷狗音乐播放器开发日志十二——播放列表的实现六
前天和昨天只顾看电视剧了,没有写程序,好在把《孤岛飞鹰》看完了,这下在可以安心写代码了 ^_^ 上次说道还要开发分组控件,分组控件的开发过程要比其他两个控件要简单得多,因为他的功能相对要少,而且自身的状态不像音乐播放项目哪个多,所以外观的编写比较简单,主要的功能就是所以一个容器来盛放音乐播放项目CMusicListItemUI控件。 他同样是继承自CTreeNodeUI控件,然
2014-07-26 15:48:20 2806
原创 仿酷狗音乐播放器开发日志十一——CTreeNodeUI的bug修复
由于做播放列表控件,我的CMusicLength控件继承了CTreeVieWUI控件,在向分组控件中添加播放项目时,发现代码无法正常工作,调用CTreeNodeUI控件的Add方法后无反应,导致我的播放器无法动态增加项目。 在对duilib源码调试后发现,CTreeNodeUI类的AddAt方法存在bug,AddAt的原型为 long CTreeViewUI::AddAt(
2014-07-26 15:47:43 3363 4
原创 仿酷狗音乐播放器开发日志十——播放列表的实现五
之前做好了CMusicListItemUI控件,昨天晚上经过修改后现在已经把一些bug修复,可以正常工作了。所以开始开发播放列表CMusicListUI控件。 但是今天早上经过我分析后,发现我目前继承自CListUI的CMusicListUI控件,我虽然给他添加了可以设置分组的功能,并且能正常工作,但是再和酷狗的播放列表比起来发现缺点就比较多了,下面我先对比一下酷狗和我做的CMusicL
2014-07-26 15:47:03 2957 1
原创 仿酷狗音乐播放器开发日志十二——播放列表的实现六
前天和昨天只顾看电视剧了,没有写程序,好在把《孤岛飞鹰》看完了,这下在可以安心写代码了 ^_^ 上次说道还要开发分组控件,分组控件的开发过程要比其他两个控件要简单得多,因为他的功能相对要少,而且自身的状态不像音乐播放项目哪个多,所以外观的编写比较简单,主要的功能就是所以一个容器来盛放音乐播放项目CMusicListItemUI控件。 他同样是继承自CTreeNodeUI控件,然
2014-07-26 15:45:51 2974 3
原创 仿酷狗音乐播放器开发日志九——播放列表的实现四
经过今天的奋战,终于把CMusicListItemUI控件整合了起来,让一个列表元素可以拥有四种状态 并且可以动态更换,控件的整合过程比我想想的麻烦,切换的逻辑与duilib库本身有一些冲突,我只能重写好多代码,这是目前的仿照效果图。 模仿图 原软件图 虽然控件的总体效果出现了,但是还有很多要修缮测试的地方,一些细节坐
2014-07-26 15:45:13 2589
原创 仿酷狗音乐播放器开发日志八——播放列表的实现三
昨天做了hover状态下的CMusciListItemUI控件,也就是列表项元素,然后今天还是在Firework里对实际酷狗的软件元素进行定位,然后做了一个被选中状态下的CMusciListItemUI控件的元素,粗略看一下和原版的效果差不多,如图 下面是原软件效果图 不同状态下的CMusciListItemUI控件的样式的组合 这样子我已经做好了4中状
2014-07-26 15:44:27 3141
原创 仿酷狗音乐播放器开发日志七——播放列表的实现二
一、MusicList控件 今天开始正式做播放列表控件,首先做一个CMusicListUI类作为播放器列表控件,控件继承自CListUI控件,并且添加了可分组,可扩展的功能,这个功能类似于QQ的好友列表控件,有分组,每个分组里可以有多个元素存在。 但是控件目前在测试阶段,因为没有做太多实际测试,估计还有会不少bug存在,这个需要在后期实际添加元素进去后才能慢慢发现。
2014-07-26 15:43:17 3714
原创 duilib中ListCtrl控件的实现
昨天在编程群里聊天,提到了ListCtrl,然后有网友找我,他需要做一个ListCtrl控件,我看过需求后接下了这个活。今天就把大致的思路和过程记录一下。首先看《任务书》: -----------------------------------------------------------任务书开始-------------------------------------------
2014-07-26 15:42:22 11511 17
原创 仿酷狗音乐播放器开发日志六——播放列表的实现
整个软件的整体效果实现后就要开始着手制作各个细节控件了,观察一下,酷狗播放器的最难做的部分应该是播放列表这个控件了。这个控件主体上看是从ListCtrl控件继承而来的。 一、分组的细节 首先这个播放列表控件支持内部的分类,如下 其中每个分组可以分为4部分,最左边是一个表示是否展开的箭头控件,然后第二部分是分组的名字,第三部分是表示分组内有多少音乐,最后是一个菜单按
2014-07-26 15:41:11 3429
原创 仿酷狗音乐播放器开发日志五——主体部分设计
标题栏和状态栏设计完成后,开始设计主体部分,主体可以从左到右分为三部分,如图 其中每一个小部分又可以看成是一个纵向布局,所以先添加三个纵向布局,最左边的起名为Left_Tab,中间的为MusicList_Tab,右边的为Explorer_Tab,前两个布局宽度固定,第三个宽度要随着窗体的大小更改而更改。 这是布局并且贴图后的仿照效果,现在的总体效果已经和原版差不多了。
2014-07-26 15:40:32 2905 2
原创 仿酷狗音乐播放器开发日志三——修复CEditUI的bug2
无意中发现了CEditUI控件的另一个bug,当我给播放器的搜索栏获取焦点时,这时再改变窗体大小,原本搜索栏应该对应着也改变大小,却发现CEditUI内嵌的edit控件没有跟着改变(如下图),跟着调试了一段时间,发现是CEditUI类中的CEditWnd类的OnKillFocus函数中提前把m_pWindow指针赋值为NULL,导致CEditUI在调整控件位置时误以为edit控件还没创建,解决办法
2014-07-26 15:38:12 3567
原创 仿酷狗音乐播放器开发日志四——标题栏和状态栏的完善
目前已经做好的效果图如下: 现在要把标题栏的最后一部分,分类按钮们加上,即 首先还是利用QQ截图的自定选定窗体大小的功能把酷狗截图粘贴到Firework里,然后对相应的控件的坐标和大小进行定位。 分类按钮们这部分的高度为115 - 39 = 76,每个按钮元素的高度为50,那么确定控件上边距为16,下边距为10。然后对控件的位置进行微调,在
2014-07-26 15:37:03 3640
原创 仿酷狗音乐播放器开发日志二——搜索栏的编写
今天早上把整个软件的标题栏部分做得差不多了。 软件上各个按钮和控件的位置和大小都是按照原软件的大小和比例制作的,所有控件都可以动态响应。首先的任务把软件的整体界面效果制作出来,然后把剩下的小细节的动作一一实现,再者是把软件里面的各种动态效果渲染上去,‘最后便是把软件的实际功能编写完成。 目前遇到的最麻烦的问题就在于软件素材的获取,用工具提取出来的素材有1500多个,所有素材
2014-07-26 15:37:00 8254 1
原创 仿酷狗音乐播放器开发日志——整体框架分析
转载请说明出处:学习duilib界面库有一段时间了,除了仓鼠软件共享以外还没用它开发过什么完整的软件项目。今天看到酷狗音乐播放器做得不错,经过几年的改革,酷狗现在的UI已经相当不错了。在这个假期,我决定做一个仿酷狗音乐播放器,模仿酷狗的软件界面,并加入基本的音乐播放功能,在QQ空间写出开发日志以作记录~~ 首先分析一下酷狗播放器的界面布局。 很简单明了的布局方
2014-07-26 15:34:43 7764 3
转载 c++与java的优缺点
大多数程序员都认为C/C++会比Java语言快,甚至于觉得从Java语言诞生以来,“执行速度缓慢”的帽子就应当被扣在头顶,这种观点的出现是由于Java刚出现的时候JIT编译技术还不成熟,主要靠解释器执行的Java语言确实性能比较低下。但是在今天JIT编译技术已经发展成熟之后,Java语言有可能在速度上与C/C++争一日长短了吗?这个问题的答案,让我们从两者的编译器谈起。 Java与
2014-07-26 15:33:17 3300
转载 unicode ansi utf-8 unicode_big_endian编码的区别
随便说说字符集和编码 快下班时,爱问问题的小朋友Nico又问了一个问题: "sqlserver里面有char和nchar,那个n据说是指unicode的数据,这个是什么意思。" 并不是所有简单的问题都很容易回答,就像这个问题一样。于是我答应专门写一篇BLOG来从头讲讲编码的故事。那么就让我们找个草堆坐下,先抽口烟,看看夜晚天空上的银河,然后想一想要从哪里开始
2014-07-26 15:31:09 1414
转载 经常去处理刚好在你能力极限上的问题
最近,我大量阅读了Steve Yegge的文章。其中有一篇叫“Practicing Programming”(练习编程),写成于2005年,读后令我惊讶不已:与你所相信的恰恰相反,单纯地每天埋头于工作并不能算是真正意义上的锻炼——参加会议并不能锻炼你的人际交往能力;回复邮件并不能提高你的打字水平。你必须定期留出时间,集中锻炼,这样才能把事情做得更好。我认识很多杰出的程序员—
2014-07-26 15:26:49 2424 1
duilib webkit内核浏览器控件(修复select标签bug)
2015-01-02
Redrain仿酷狗播放器完整源代码
2014-11-12
duilib IE去边框和滚动条
2014-10-23
Redrain自己正在使用的duilib和uilib库
2014-10-13
duilib 仿酷狗 QQ的动态调色板(性能调整)
2014-08-18
duilib 仿酷狗动态调色板控件
2014-08-16
duilib webkit内核浏览器控件
2014-08-13
CPopupWidget ,duilib的一个挂件类
2014-08-07
给窗体添加阴影by Redrain
2014-08-03
UISlider控件4个bug的修复patch 2014.7.28 BY:Redrain
2014-07-28
NT API说明文档
2012-06-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人