Posted on 2009-10-09 14:01
S.l.e!ep.¢% 閱讀(2418)
評論(3) 編輯 收藏 引用 所屬分類:
IM
DirectUI界面庫 取名自微軟的一個窗口類名“DirectUIHWND”,意為Paint on parent dc directly。即子窗口不以窗口句柄的形式創建,只是邏輯上的窗口,繪制在父窗口之上。微軟的“DirectUI”技術廣泛的應用于Window XP系統,Media Player播放器,即時通訊工具MSN Messager。
傳統的window界面,是用戶窗口的層次排列,這種方式有很多局限性。目前的開發環境我們可以很快的使用win32控件構造出標準的干凈的界面,但是我們同時也會立刻意識到如果我想像界面更加漂亮,更加炫一點就比較麻煩了。Windows控件提供的Custom-Draw/Ower-Draw技術局限太多,基本上沒有透明等效果支持,同時控件布局方面也比較古板。
DirectUI界面庫使用XML來描述界面風格,界面布局,使用腳本語言(如vbscript,javascript,lua)等來作為界面元素和程序邏輯的交互。從這方面來看,DirectUI界面庫可以看成是一個迷你的微軟WPF,mozilla XUL,或者Adobe的Flex,這些平臺代表的應用程序的發展方向,同時也有很多相似的架構,比如多采用類似XML的方式描述定義界面,使用腳本語言(xul使用javascript,flex使用Action Script)來作為控制界面元素并和程序邏輯之間交互。DirectUI 界面庫采用相似的設計,使用xml描述界面,同時使用javascript,或者vbscript來作為界面和邏輯的粘合。在控件設計方面,DirectUI界面庫更多的融入了XUL,WPF,Flex等控件設計理念,并沒有一味的照搬window標準控件,以期望其成為一款真正使用實用的界面庫。
這種界面庫設計的最大的好處在于可以很方便的構建高效,絢麗的,非常易于擴展的界面。國外如微軟,國內如騰訊,百度等公司的客戶端產品多采用這種方式來組織界面,從而很好的將界面和邏輯分離,同時易于實現各種超炫的界面效果如換色,換膚,透明等。 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