duilib的入门系列就到尾声了,再次提醒下,Alberl用的duilib版本是SVN上第个版本,时间是2013.08.15~
 
    这里给出Alberl最后汇总的一个工程,戳我下载,效果如图:
 
    
 
2013 duilib入门教程汇总:
 
    对比duilib自带的Demo而言,值得一提的是以下几点:
1、本教程菜单、列表框的使用非常简明,比duilib自带的Demo里简明N倍,看过Demo的应该都知道MenuDemo、ListDemo太绕了。
2、在教程15中介绍的菜单控件实现了阴影窗口,虽然这个是参考Demo里的,但是代码少了N倍,因为菜单的图片就有阴影效果,无需再自行绘制了。
2、提供了CWndUI,用于显示win32、MFC、WTL等HWND类的窗口。
3、提供了CXMLWnd(以XML生成界面的窗口基类),菜单类CMenuWnd、框架类CFrameWnd都继承于它。
4、菜单类CMenuWnd采用了编译期提示错误的方法,强制CMenuWnd只能通过new来声明,防止delete this出错~
 
结束语:
    第一篇始于2013.09.26,最后一篇终于2013.10.06,除了国庆,基本上每天晚上都在写,周末全天都写,耗费了大概7个晚上 + 一个周末。
    而正式学习duilib是在2013.09.09,于2013.09.24基本入门,除去中间有一星期在干其他的,耗费了大概9个晚上 + 一个周末。
    可以发现写教程的时间差不多和写代码的时间一样了,第一次写这么完整的教程,真正感受到了写文档为啥比写代码纠结~~~~(>_<)~~~~
 
    此入门教程是Alberl用duilib模仿原来的MFC程序所用到的知识,已经一一介绍给小伙伴了;下一个阶段将会用duilib来模仿几年前做的仿迅雷播放器界面,之后会做出一个完整的播放器,并且开源出来(注意:开源并不是把代码传上来就完事了,必须配备好详细的文档才算一个合格的开源项目,几年前Alberl已经传过源代码了,最近将整个SVN库都上传了)。Alberl也会配置相应的文档。 先放一张MFC做的土鳖图:
    由于之前都是用MFC,所以要完全模仿迅雷就很困难,界面难免很山寨,不过现在有了duilib之后,界面就不是太难的事啦,Alberl将会模仿目前最新的迅雷播放器,小伙伴们期待不?
    不过得声明的是:
    Alberl几年前开源了一个五子棋项目,并在末尾说了后面会开源播放器,但毕业之后就没时间了,于是就太监了。所以这次卷土重来,但是小伙伴们也不要催时间哦,Alberl只有业余时间才学习这些,所以不能给出具体的时间,只能说尽快~O(∩_∩)O~
    另外就是要看看本次duilib入门教程的反响,如果评价普遍不好的话,Alberl就不继续献丑啦,如果反响不错的话,Alberl会继续下一个系列的教程,就是仿迅雷播放器,后面还会有安装包等一系列完整应用的教程,希望不要太监了~
    小伙伴们,入门教程就讲完啦,如有遗漏,请亲们在评论中补充,如果是属于入门范畴的,Alberl会尽快加上~O(∩_∩)O~

2013 duilib入门简明教程 -- 总结 (20)的更多相关文章

  1. 2013 duilib入门简明教程 -- 第一个程序 Hello World(3)

    小伙伴们有点迫不及待了么,来看一看Hello World吧: 新建一个空的win32项目,新建一个main.cpp文件,将以下代码复制进去: #include <windows.h> #i ...

  2. 2013 duilib入门简明教程 -- 部分bug (11)

     一.WindowImplBase的bug     在第8个教程[2013 duilib入门简明教程 -- 完整的自绘标题栏(8)]中,可以发现窗口最大化之后有两个问题,     1.最大化按钮的样式 ...

  3. 2013 duilib入门简明教程 -- 部分bug 2 (14)

        上一个教程中提到了ActiveX的Bug,即如果主窗口直接用变量生成,则关闭窗口时会产生崩溃            如果用new的方式生成,则不会崩溃,所以给出一个临时的快速解决方案,即主窗口 ...

  4. 2013 duilib入门简明教程 -- 自绘控件 (15)

        在[2013 duilib入门简明教程 -- 复杂控件介绍 (13)]中虽然介绍了界面设计器上的所有控件,但是还有一些控件并没有被放到界面设计器上,还有一些常用控件duilib并没有提供(比如 ...

  5. 2013 duilib入门简明教程 -- 事件处理和消息响应 (17)

        界面的显示方面就都讲完啦,下面来介绍下控件的响应.     前面的教程只讲了按钮和Tab的响应,即在Notify函数里处理.其实duilib还提供了另外一种响应的方法,即消息映射DUI_BEG ...

  6. 2013 duilib入门简明教程 -- FAQ (19)

        虽然前面的教程几乎把所有的知识点都罗列了,但是有很多问题经常在群里出现,所以这里再次整理一下.     需要注意的是,在下面的问题中,除了加上XML属性外,主窗口必须继承自WindowImpl ...

  7. 2013 duilib入门简明教程 -- 界面布局(9)

        上一个教程实现的标题栏代码中,并没有看到处理自适应窗口大小的代码,但是窗口大小变化后,按钮的位置会跟着变化,这是因为我们将按钮放到了HorizontalLayout.VerticalLayou ...

  8. 2013 duilib入门简明教程 -- 前言(1)

        关于duilib的介绍就不多讲了,一来不熟,二来小伙伴们想必已经对比了多个界面库,也无需赘述.下面进入正题:     不看广告看疗效! 已有众多知名公司采用duilib做为界面库,如华为网盘. ...

  9. 2013 duilib入门简明教程 -- 复杂控件介绍 (13)

      首先将本节要介绍的控件全部拖到界面上,并调整好位置,如图:           然后将Name属性改成其他名字,          不能是[控件名+UI+数字]这种,因为这是DuiDesigner ...

随机推荐

  1. liunx 防火墙开放端口的设置

    今天在liunx 服务器上遇到一个问题,tomcat服务启动后怎么也访问不到项目,找了好久的原因,终于发现原来是liunx服务防火墙限制服务端口的访问,也就不多说了,看下面解决方法. 1.查看防火墙的 ...

  2. NPOI创建DOCX常用操作【转】

    1.  创建文档 XWPFDocument m_Docx = new XWPFDocument();2.  页面设置 //1‘=1440twip=25.4mm=72pt(磅point)=96px(像素 ...

  3. 分析sql语句所有表名及其别名的正则表达式

    最近为了 写一个分布式的数据组件构想了很多的方案,最近一个简单易行的方案终于在脑袋里成型.昨晚想到凌晨1点多,发现方案虽简单,但所有的数据库工具就不能使用了 .除非自己写一下查询分析器来执行程序员自己 ...

  4. linux 重新编译低版本gcc

    编程实践中,可能会遇到需要较低版本gcc以兼容相应程序的需求,这时就需要我们将系统中默认的gcc版本较低,或者重新编译生成.(UBUNTU12.04下实现gcc4.2.3) 方法1: 对于UBUNTU ...

  5. C# IGUID的生成

    GUID(全局统一标识符)是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的.通常平台会提供生成GUID的API.生成算法很有意思,用到了以太网卡地址.纳秒级时间.芯片ID码和许多可 ...

  6. 第54讲:Scala中复合类型实战详解

    今天学习了scala的复合类型的内容,让我们通过实战来看看代码: trait Compound_Type1trait Compound_Type2class Compound_Type extends ...

  7. petapoco 使用 MiniProfiler Glimpse监控

    PetaPoco是一款适用于.Net(window) 和Mono( linux )的微小.快速.单文件的微型ORM. MVC MiniProfiler是Stack Overflow团队设计的一款对AS ...

  8. HDOJ 4749 Parade Show

    说实在的在比赛时看错了题意,一直对最后一段的描述不是很清楚.闲话少说: 题意:给一个主串,再一个副串,问主串中有多少个子串和副串的的规律相同,即相邻的相等大于小于,用过的就不能再用了. #includ ...

  9. [转] MySQL 查询表数据大小的总结

    一:关于mysql表数据大小 我们知道mysql存储数据文件一般使用表空间存储 当mysql使用innodb存储引擎的时候,mysql使用表存储数据分为共享表空间和独享表空间两种方式 ·共享表空间:I ...

  10. excel转化为table(去掉所有列值都为空的值一行,即返回有效值的DataTable)

    /// <summary> /// 去掉所有列值都为空的值一行,即返回有效值的DataTable /// </summary> /// <param name=" ...