仿酷狗音乐播放器开发日志八——播放列表的实现三

    昨天做了hover状态下的CMusciListItemUI控件,也就是列表项元素,然后今天还是在Firework里对实际酷狗的软件元素进行定位,然后做了一个被选中状态下的CMusciListItemUI控件的元素,粗略看一下和原版的效果差不多,如图
 
    下面是原软件效果图


    不同状态下的CMusciListItemUI控件的样式的组合

    这样子我已经做好了4中状态下的CMusciListItemUI控件(普通,hover,down,selected),效果分别如下:

 

    所以接下来的工作就是要把这四种状态组合起来,让他成为一个控件,为此我需要把这四种状态的下的列表项的xml文件利用TabLayout布局和visible 属性把他们用技巧结合到一个xml文件里,然后把这个xml文件封装为CMusciListItemUI控件,让控件默认按照普通状态下的样式来改变自己的外观。
    让CMusciListItem控件继承CContainerListItemElementUI控件,然后需要重写 DoEvent成员函数,在函数里判断控件当前接收鼠标的状态,然后控制自己的显示效果来动态切换到
(普通,hover,down,selected)这四种状态,这样就完成了CMusciListItem控件的最主要功能。经过代码的修正后CMusciListItem控件完工。下一篇日志把完整的CMusciListItem控件效果展示一下。
    剩下的工作就是对CMusicListUI控件的修缮,虽然还没开始,但我感觉应该会碰到不少的问题。 

2014.7.18  8:51  Redrain

时间: 2024-09-12 01:43:27

仿酷狗音乐播放器开发日志八——播放列表的实现三的相关文章

仿酷狗音乐播放器开发日志六——播放列表的实现

转载请说明出处,谢谢~~       整个软件的整体效果实现后就要开始着手制作各个细节控件了,观察一下,酷狗播放器的最难做的部分应该是播放列表这个控件了.这个控件主体上看是从ListCtrl控件继承而来的.   一.分组的细节    首先这个播放列表控件支持内部的分类,如下    其中每个分组可以分为4部分,最左边是一个表示是否展开的箭头控件,然后第二部分是分组的名字,第三部分是表示分组内有多少音乐,最后是一个菜单按钮,单击后可以弹出功能菜单  二.每个分组内部的细节      首先每个音乐项目

仿酷狗音乐播放器开发日志十——播放列表的实现五

  之前做好了CMusicListItemUI控件,昨天晚上经过修改后现在已经把一些bug修复,可以正常工作了.所以开始开发播放列表CMusicListUI控件.    但是今天早上经过我分析后,发现我目前继承自CListUI的CMusicListUI控件,我虽然给他添加了可以设置分组的功能,并且能正常工作,但是再和酷狗的播放列表比起来发现缺点就比较多了,下面我先对比一下酷狗和我做的CMusicListUI控件.    //////////////////////////////////////

仿酷狗音乐播放器开发日志九——播放列表的实现四

  经过今天的奋战,终于把CMusicListItemUI控件整合了起来,让一个列表元素可以拥有四种状态 并且可以动态更换,控件的整合过程比我想想的麻烦,切换的逻辑与duilib库本身有一些冲突,我只能重写好多代码,这是目前的仿照效果图.                模仿图            原软件图    虽然控件的总体效果出现了,但是还有很多要修缮测试的地方,一些细节坐标模仿的还不够到位,控件也可能会出现逻辑上的错乱,这是需要进一步改进的.    继续更新中 2014.7.18  18

仿酷狗音乐播放器开发日志二十一 开发动态调色板控件(附源码)

转载请说明原出处,谢谢~~           上一篇仿酷狗日志结束后,整个换肤功能就只剩下调色板功能没有做了,我本以为会很简单,但是研究了酷狗的调色板功能后发现不是那么简单的事情.首先看一下酷狗的调色板的样子:         我原本以为酷狗的主界面只是一张图片,然后通过鼠标坐标来选择颜色,简单粗暴.等我开始做这部分时发现情况不一样.         可以看到,酷狗的调色板分为两部分,上半部分是调色板的主界面,下半部分是调整亮度的工具栏,我这里分别给他们起名为Pallet和Bar方便说明.这个

仿酷狗音乐播放器开发日志二十二 动态调色板控件第二版(性能大幅提升附源码)

转载请说明原出处,谢谢~~         在上次写的博客<仿酷狗音乐播放器开发日志二十一 开发动态调色板控件(附源码)>发布后,我在群里和网友讨论这个控件的性能和优 缺点,发现了他很多不足,还有很多提升空间,之后我简单的修改了代码提升了控件的响应速度.        昨天网友"风之羽翼"联系到我,他在我原来写的控件基础上,对绘图的算法进行重写,大幅提升了控件的绘制速度,算法也精准了很多,最终的控 件效果要比原酷狗更加流畅,于是今天把新的控件代码上传,供感兴趣的朋友使用.在

仿酷狗音乐播放器开发日志二十——换肤功能背景图片控件的制作(附源码)

转载请说明原出处,谢谢~~           <仿酷狗音乐播放器开发日志二十>里做了换肤功能的一部分,今天完成其他的部分.酷狗的换肤窗口里的背景图可以让用户选择来换图,原酷狗的背景图的小图标,有normal.hover.down等多种状态,鼠标移动上去便会发生变化.如图        当鼠标经过时会有个黑色图片覆盖,边框变为浅蓝色.并且在他上面显示出作者的一些信息.要实现这个效果应该另外开发一个控件来支持动态的信息展示效果.我把这个小控件的开发过程和源码发一下,给学习做duilib控件的新手

仿酷狗音乐播放器开发日志十九——CTreeNodeUI的bug修复二(附源码)

转载请说明原出处,谢谢        今天本来打算把仿酷狗播放列表的子控件拖动插入功能做一下,但是仔细使用播放列表控件时发现了几个逻辑错误,由于我的播放 列表控件是基于CTreeViewUI和CTreeNodeUI做得,所以产生这几个bug的原因还在于他们两个,在<仿酷狗音乐播放器开发日志十一 --CTreeNodeUI的bug修复>中已经修复过一个动态添加控件的相关bug,这属于第二次修复了.关于第一次bug的修复,后来 Duilib扩展群的 joe 又进行过比我更全面的修复,我现在使用的C

仿酷狗音乐播放器开发日志——整体框架分析

转载请说明出处,谢谢~~ 学习duilib界面库有一段时间了,除了仓鼠软件共享以外还没用它开发过什么完整的软件项目.今天看到酷狗音乐播放器做得不错,经过几年的改革,酷狗现在的UI已经相当不错了.在这个假期,我决定做一个仿酷狗音乐播放器,模仿酷狗的软件界面,并加入基本的音乐播放功能,在QQ空间写出开发日志以作记录~~     首先分析一下酷狗播放器的界面布局.     很简单明了的布局方式,我把它先大致分为3部分,在Firework里贴上酷狗的软件的截图,然后使用切片工具对三部分进行精确分割,得到

仿酷狗音乐播放器开发日志二十七 用ole为窗体增加文件拖动功能(附源码)

转载请说明原出处,谢谢~~        中秋到了,出去玩了几天.今天把仿酷狗程序做了收尾,已经开发完成了,下一篇博客把完结的情况说一下.在这篇博客里说一下使用OLE为窗体增加文件拖拽的功能.使用播放器,我更喜欢直接拖动音乐文件添加到软件里,所以做这个功能很重要.做OLE拖拽之前学习了两篇文章: http://www.codeproject.com/Articles/840/How-to-Implement-Drag-and-Drop-Between-Your-Progra%E3%80%91 h