Posted on 2009-10-09 14:01
S.l.e!ep.¢% 閱讀(2432)
評(píng)論(3) 編輯 收藏 引用 所屬分類:
IM
DirectUI界面庫(kù) 取名自微軟的一個(gè)窗口類名“DirectUIHWND”,意為Paint on parent dc directly。即子窗口不以窗口句柄的形式創(chuàng)建,只是邏輯上的窗口,繪制在父窗口之上。微軟的“DirectUI”技術(shù)廣泛的應(yīng)用于Window XP系統(tǒng),Media Player播放器,即時(shí)通訊工具M(jìn)SN Messager。
傳統(tǒng)的window界面,是用戶窗口的層次排列,這種方式有很多局限性。目前的開(kāi)發(fā)環(huán)境我們可以很快的使用win32控件構(gòu)造出標(biāo)準(zhǔn)的干凈的界面,但是我們同時(shí)也會(huì)立刻意識(shí)到如果我想像界面更加漂亮,更加炫一點(diǎn)就比較麻煩了。Windows控件提供的Custom-Draw/Ower-Draw技術(shù)局限太多,基本上沒(méi)有透明等效果支持,同時(shí)控件布局方面也比較古板。
DirectUI界面庫(kù)使用XML來(lái)描述界面風(fēng)格,界面布局,使用腳本語(yǔ)言(如vbscript,javascript,lua)等來(lái)作為界面元素和程序邏輯的交互。從這方面來(lái)看,DirectUI界面庫(kù)可以看成是一個(gè)迷你的微軟WPF,mozilla XUL,或者Adobe的Flex,這些平臺(tái)代表的應(yīng)用程序的發(fā)展方向,同時(shí)也有很多相似的架構(gòu),比如多采用類似XML的方式描述定義界面,使用腳本語(yǔ)言(xul使用javascript,flex使用Action Script)來(lái)作為控制界面元素并和程序邏輯之間交互。DirectUI 界面庫(kù)采用相似的設(shè)計(jì),使用xml描述界面,同時(shí)使用javascript,或者vbscript來(lái)作為界面和邏輯的粘合。在控件設(shè)計(jì)方面,DirectUI界面庫(kù)更多的融入了XUL,WPF,F(xiàn)lex等控件設(shè)計(jì)理念,并沒(méi)有一味的照搬window標(biāo)準(zhǔn)控件,以期望其成為一款真正使用實(shí)用的界面庫(kù)。
這種界面庫(kù)設(shè)計(jì)的最大的好處在于可以很方便的構(gòu)建高效,絢麗的,非常易于擴(kuò)展的界面。國(guó)外如微軟,國(guó)內(nèi)如騰訊,百度等公司的客戶端產(chǎn)品多采用這種方式來(lái)組織界面,從而很好的將界面和邏輯分離,同時(shí)易于實(shí)現(xiàn)各種超炫的界面效果如換色,換膚,透明等。 DirectUI 界面庫(kù)旨在滿足客戶端界面快速開(kāi)發(fā)的需要,同時(shí)融入業(yè)界前沿的皮膚技術(shù),為用戶創(chuàng)建更加高效,專業(yè)的界面。
其他特性:
* 使用xml配置界面控件布局
* 使用腳本(vbscript, jscript)控制控件屬性,響應(yīng)事件
* 使用xml描述界面風(fēng)格
* XML語(yǔ)法簡(jiǎn)單,易于學(xué)習(xí)和掌握
* 基于Win32 API,沒(méi)有framework依賴。
* 支持改變皮膚色調(diào)
* 支持大多數(shù)控件透明,包括子窗口透明
* 支持png, bitmap, gif, ico圖片格式。支持帶透明通道的png圖片
DirectUI在微軟內(nèi)部使用的很廣泛了,為什么不公布出來(lái)呢?估計(jì)有三點(diǎn)原因:
1. 最初寫(xiě)這套框架的人太牛了,根本沒(méi)寫(xiě)什么注釋文檔,又經(jīng)過(guò)一堆牛人一通亂改,估計(jì)能看懂和用好的人不多。發(fā)布出來(lái),大家一看原來(lái)微軟的代碼也可以這么亂,對(duì)Vista的信心更是大跌。
2. DirectUI只是一個(gè)UI框架,沒(méi)有什么數(shù)據(jù)庫(kù),網(wǎng)絡(luò),WebSerivice支持,更別說(shuō)同MFC,ATL集合,甚至可能沖突,為了顧全MFC的地位,WTL都可以犧牲,DirectUI更別說(shuō)了。
3.DirectUI是C++開(kāi)發(fā)的,這是什么時(shí)代了還用C++開(kāi)發(fā),有了多快好省的DirectUI,誰(shuí)還用.NET開(kāi)發(fā)客戶端程序,同微軟的發(fā)展戰(zhàn)略不一致呀。
?
from url:http://blog.csdn.net/kissqi/archive/2009/06/30/4306628.aspx