DirectUI界面庫 取名自微軟的一個窗口類名“DirectUIHWND”,意為Paint on parent dc directly。即子窗口不以窗口句柄的形式創建,只是邏輯上的窗口,繪制在父窗口之上。微軟的“DirectUI”技術廣泛的應用于Window XP系統,Media Player播放器,即時通訊工具MSN Messager。
傳統的window界面,是用戶窗口的層次排列,這種方式有很多局限性。目前的開發環境我們可以很快的使用win32控件構造出標準的干凈的界面,但是我們同時也會立刻意識到如果我想像界面更加漂亮,更加炫一點就比較麻煩了。Windows控件提供的Custom-Draw/Ower-Draw技術局限太多,基本上沒有透明等效果支持,同時控件布局方面也比較古板。
DirectUI界面庫使用XML來描述界面風格,界面布局,使用腳本語言(如vbscript,javas
這種界面庫設計的最大的好處在于可以很方便的構建高效,絢麗的,非常易于擴展的界面。國外如微軟,國內如騰訊,百度等公司的客戶端產品多采用這種方式來組織界面,從而很好的將界面和邏輯分離,同時易于實現各種超炫的界面效果如換色,換膚,透明等。 DirectUI 界面庫旨在滿足客戶端界面快速開發的需要,同時融入業界前沿的皮膚技術,為用戶創建更加高效,專業的界面。
其他特性:
* 使用xml配置界面控件布局
* 使用腳本(vbscript, jscript)控制控件屬性,響應事件
* 使用xml描述界面風格
* XML語法簡單,易于學習和掌握
* 基于Win32 API,沒有framework依賴。
* 支持改變皮膚色調
* 支持大多數控件透明,包括子窗口透明
* 支持png, bitmap, gif, ico圖片格式。支持帶透明通道的png圖片
DirectUI在微軟內部使用的很廣泛了,為什么不公布出來呢?估計有三點原因:
1. 最初寫這套框架的人太牛了,根本沒寫什么注釋文檔,又經過一堆牛人一通亂改,估計能看懂和用好的人不多。發布出來,大家一看原來微軟的代碼也可以這么亂,對Vista的信心更是大跌。
2. DirectUI只是一個UI框架,沒有什么數據庫,網絡,WebSerivice支持,更別說同MFC,ATL集合,甚至可能沖突,為了顧全MFC的地位,WTL都可以犧牲,DirectUI更別說了。
3.DirectUI是C++開發的,這是什么時代了還用C++開發,有了多快好省的DirectUI,誰還用.NET開發客戶端程序,同微軟的發展戰略不一致呀。
?
from url:http://blog.csdn.net/kissqi/archive/2009/06/30/4306628.aspx