Duilib非官方更新貼~


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.第一次提交.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM