GitHub: https://github.com/movsb/duilib.git

2014-07-20: [76a04d1]
    [BugFix] 修复无法解析类似<Control/>无属性xml元素问题(结束标记前没有空格)

2014-07-11: [41ef8f1]
    解决Unicode编译错误, 平时都用MBCS编译, 没注意这个问题

2014-07-01: [5927b2889bf3baa57d547c32a8f2702baa1ced5e]
    ①BUG修复:修复按一次ESC导致多个窗口关闭的问题 ②上次提交不小心在UIManager里面引入了一个新的BUG,已修复

2014-06-27:
    ①基本完善系统控件Check/Button/Option ②优化PaintManager()SetFocus和SetCapture的行为
    1. 原来在SetFocus的时候, PaintManager总是会设置焦点窗口为主窗口, 这会导致具有句柄的子控件响应消息出现异常.
        为了解决此问题, 所有具有窗口句柄的控件必须实现一个名为"HWND"的接口,当调用GetInterface的时候返回其窗口句柄.
    2. Option在一开始的时候有一个BUG, 就是用TAB选中的时候, 不知道为什么会向主窗口发送BN_CLICK消息, 导致在SetFocus的时候选中.
        解决方案: TAB只能选择已经被选择中的Option控件, 未被选中的Option暂时不能用TAB来选择.
    3. [BUG] 用TAB选择控件的时候, 有时候会出现控件没有虚线框, 有时候却有(调试时出现过), 不知道为什么.

2014-06-25: [8ad0de5a1c4d621045dc3e55342c2be1a2953107]
    基本完善系统EDIT控件, 不过没做太多测试
    控件支持的属性请直接看源代码的SetAttribute

2014-06-21: [37627cdec889cc9fe802f59206360fe39a412790]
    CDuiString的Find()函数增加是否区分大小写参数, 默认为区分

2014-06-19: [d58b86ea1266c2332b69ed4955880c4027413469]
    尽量少使用using namespace xxx;语句, 特别是在头文件中!!! WE DEAL?

2014-06-19: [7734cf6ac93c36bbd2edde05319af9a7f4a62ac4]
    相信我, 你不会再看到有把C++的异常用得比这个更烂的源代码了!

2014-06-15: [5494045f18a57f8d6d89570fdf80830a2bc5686d]
    让滚动条的行为更加标准化
    另: UIEVENT_TIMER 居然没有设置ptMouse

2014-06-14: [4081e7a8a78d1ec045786385e2d9796d127a09db]
    修改滚动条在丢失鼠标捕捉时依然捕捉鼠标的BUG(实际已没有捕捉)

2014-06-11: [cf63262c0ed92719f403d47069e05a0489c9ffaf]
    ①对所有容器增加了选区支持, 支持被选择的子控件需要实现 '容器选择接口 --- 初步版本
    [*] [UIControl] 将原来本来属于PM的SetCapture()实现了控件上, 控件直接使用SetCapture()设置当前鼠标捕捉
    [*] [UIManager] [BugFix] 原来PM没处理WM_CAPTURECHANGED消息, 导致丢失捕捉时的错误响应
    [+] 为所有容器实现矩形选区来选择(多选)子控件, ListUI同样支持, 但容器的子控件必须实现'选择'接口 --- 初步实现
        考虑到方便性, 以后的版本可能会把 '容器选择' 接口实现到控件基类CControlUI上, 但目前还没这样做.

2014-06-10: [ca440402f993b3e8630a865043c66dce1e679d94]
    ①所有控件均可设置是否需要TAB按键
    1. 之前, 除RichEdit外, 其它控件均无法接收到TAB消息, 连EDIT也同样, 谁说EDIT不需要TAB啊?
        通过属性 wanttab=true/false, 及函数 SetWantTab()/IsWantTab()来设置是否启用TAB
    2. wanttab默认为不接收, RichEdit还是原来一样, 默认接收

2014-06-10: [88c0f59ee1dd9698aca2312ac0b9b276cd1e1135]
    CButtonUI增加了是否在鼠标进入时使用手形鼠标
    1. 默认不启用手形鼠标, 通过 hand="true" 来启用, 其它关闭

2014-06-09: [4705a0bd604ce9c3e1b5b7b8ed1c3e6849af0b38]
    ①增加控件级别的鼠标消息捕捉 ②UI事件添加右键弹起事件 ③菜单消息的控件修改为松开鼠标时的那个控件
    1. 所有控件均可向Manager申请鼠标捕捉, 捕捉后鼠标消息只发送到当前控件.
    2. 滚动条在拖动滚动时默认开启鼠标捕捉, 不然会导致容器在滚动时刷新hotitem, 严重影响效率.
    3. UI事件增加了右键弹起事件
    4. 之前, 菜单消息是鼠标按下产生时的控件, 如果用户按下右键并拖动, 则产生菜单消息的应该是松开时的那个控件, 不是吗?

2014-05-18: [a77fdfc8c51e7b6443b4d35d1169b312b228d3eb]
    1.修改CListUI的SetAttribute()又少了一个else的小bug

2014-05-18: [f90e447b4955c1378f3a4ea96d29a81a70a7af13]
    1. 添加了测试项目文件. 用来测试系统控件的工作.
    2. 系统控件增加了 Option/CheckBox, 没完善所有功能.

2014-05-18:
    1. 添加系统控件项目.
    2. 增加了控件: SysCombo, SysButton; 消息处理未完善.

2014-05-18:
    1.DEBUG下图片加载失败警告.

2014-05-18:
    1. 报告未知属性时, 附带控件名(如果有); 同时修改了GetManager()可能为空的BUG.
    2. 在创建控件时, 报告未知控件.

2014-05-16:
    1. [UICombo.cpp] 源代码SetAttribute时在if前面少写了个else, 而且前面的if没有以return结束, 导致子控件的属性重复判断+传递给父控件 (无效属性)

2014-05-15:
    1. 取消了没必要的SetText()/GetText()重载; 和变量m_sTextValue;
    2. 每个基于CLabel的控件一个gdiplusToken, 构造和析构的时候初始化与反初始化GdiPlus, 这效率是得有多低? 果断将其删除, 移到CPaintManager()下面, 新建两个函数.
    3. DEBUG时, 用到了Gdiplus但如果未初始化, 则提示.

2014-05-13:
    1.[cpp] 添加了一个DEBUG下的'未知属性' 提示, 用MessageBox看起来有点不友好, 是不是? whatever!
    2.[h] 添加了若干函数, 用于快速地将CControlUI*转换到系统自带的控件指针类型

2014-05-13:
    1.源代码未处理user32在load失败的情况, 虽然这基本不可能会失败, 但VS报警告可能使用了未初始化的变量; 而我, 直接注释掉了那几句
    2.同样, pNewData也可能是未初始化的

2014-05-13:
    1.因为VS2012在/W4时会警告潜在的未初始化的变量使用, 所以初始化了几个变量, 以及一个goto err;错误跳转
    2.WORD->BYTE, VS2012报数据丢失, 管它呢, 加个转换

2014-05-13:
    1.这个宏定义我硬是没看懂是怎么回事, 居然可以不写#endif也能通过
    2.添加了一个GetManager()函数用来返回PM的指针, 取代原来直接使用m_PaintManager变量名
    3.把本来属于CPaintManagerUI的两个函数FindControl实现在了此类里面实现快速调用(无需先GetManager())

2014-05-13:
    1.修正了头文件包含导致的IDispatch重定义错误
    2.添加了hr的初始化

2014-05-13:
    1.完全来自官方的源代码, 未作任何更改.(391版本)
    2.添加到VS2012的项目, 只保留了duilib项目, 没有包含任何示例.
    3.在VS2012下编译有许多编译错误.
    4.第一次提交.

Duilib非官方更新贴~的更多相关文章

  1. Duilib教程-简单介绍

    在读这篇博客的时候,可能您已经对duilib有一定的了解.所以,我并不打算对duilib进行过多的介绍.它的内核首先由外国人编写,后来由国人一个小组接过来继续编写,于是就有了现在的Duilib. 1. ...

  2. 有关Duilib的博客(持续更新)

    1.转载:http://blog.csdn.net/LostSpeed/article/category/1896505 2.支持多线程和动画 转载:http://blog.csdn.net/Skil ...

  3. 【非官方方式】获取Disconf动态更新的配置文件的值

    disconf可以配置reload,当更改配置时自动刷新classpath下的配置文件.然而获取最新的值官方说明是加@DisconfFileItem注解放在属性的方法上,底层通过拦截器获取的. 但是每 ...

  4. (更新中)"华为杯" 武汉大学21级新生程序设计竞赛 非官方题解

    "华为杯" 武汉大学21级新生程序设计竞赛 https://ac.nowcoder.com/acm/contest/31620#question D.和谐之树 思路:披着线段树外皮 ...

  5. QQ互联登录以及非官方正版应用报100044错误

    QQ第三方登录的时候,显示非官方正版应用,报100044错误:坑1:我们在QQ互联注册成功后需要设置包名和签名,签名是通过官方提供的工具生成的.注意一点:这里的签名是需要由打包签名之后APK生成,我们 ...

  6. Duilib源码分析(四)绘制管理器—CPaintManagerUI

    接下来,分析uilib.h中的UIManager.h,在正式分析CPaintManagerUI前先了解前面的一些宏.结构: 枚举类型EVENTTYPE_UI:定义了UIManager.h中事件通告类型 ...

  7. Duilib源码分析(三)XML解析器—CMarkup

    上一节介绍了控件构造器CDialogBuilder,接下来将分析其XML解析器CMarkup: CMarkup:xml解析器,目前内置支持三种编码格式:UTF8.UNICODE.ASNI,默认为UTF ...

  8. 谈谈duilib

    据我所知,duilib已经不再维护了,q群也不再对外开放了. 尽管不再更新,但duilib的学习价值还是很好的.当有一定基础后再扩展duilib的功能,或根据duilib学习到的知识去着手写自己的界面 ...

  9. Duilib开发环境搭建

    1.到github上下载最新版本,https://github.com/duilib/duilib,也没有发现版本号,就如图所示吧 2.我只安装了VS2008,而github上的已经更新到VS2013 ...

随机推荐

  1. Java 获取距离最近一段时间的时间点

    if (timeFilter == 1) {// 最近三个月 long curTimeSeconds = System.currentTimeMillis() / 1000L; para.put(&q ...

  2. The C Programming Language (second edition) 实践代码(置于此以作备份)

    1. #include <stdio.h> #include <stdlib.h> #include <math.h> #include<time.h> ...

  3. js正则表达式中的问号几种用法小结

    这篇文章主要介绍了js正则表达式中的问号几种用法,比如+?,*?,{2,3}?可以停止匹配的贪婪模式,感兴趣的朋友可以参考下 在表示重复的字符后面加问号,比如+?,*?,{2,3}?可以停止匹配的贪婪 ...

  4. JS闭包(转载加整理)

    原文地址:http://www.jb51.net/article/24101.htm 闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现. 一.变量 ...

  5. Memcached在windows下的安装于使用

    原文链接:http://blog.csdn.net/jjmaiz/article/details/7935672 有一点要注意的是,上文作者没有提及: 将php_memcached.dll放在ext文 ...

  6. VirtualBox下安装rhel5.5 linux系统

    以前也用过VMware server和VMware workstation虚拟机,现在使用了一段时间VirtualBox,感觉它比较轻巧,很适合我,在Win7系统下用起来很方便.下面详细介绍下在Vir ...

  7. 转:Java NIO系列教程(一)Java NIO 概述

    Java NIO 由以下几个核心部分组成: Channels Buffers Selectors 虽然Java NIO 中除此之外还有很多类和组件,但在我看来,Channel,Buffer 和 Sel ...

  8. 《CMake实践》第三部分的示例代码的错误

    <CMake实践>的第三章,初试cmake - cmake的helloworld 中的 PROJECT (HELLO) SET(SRC_LIST main.c) MESSAGE(statu ...

  9. HDU 4864 Task (贪心+STL多集(二分)+邻接表存储)(杭电多校训练赛第一场1004)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4864 解题报告:有n台机器用来完成m个任务,每个任务有一个难度值和一个需要完成的时间,每台机器有一个可 ...

  10. unity StreamingAssets路径

    原地址:http://blog.csdn.net/nateyang/article/details/8493791 我们在读写例如XML和TXT文件的时候,在电脑上和手机上路径不一致,造成了很多麻烦, ...