|
1,MFC
基于VC6.0的微軟基礎(chǔ)庫
2,WPF
做絢麗界面一律用WPF,做一般絢麗界面用WinForm,做windows標(biāo)準(zhǔn)界面用MFC
WPF也有個(gè)致命缺點(diǎn),就是要.net framework支持
3,DirectUI
Windowsless或者Handleless,也就是無句柄窗口
4,迅雷界面引擎
http://xldoc.xl7.xunlei.com/
迅雷7應(yīng)用開發(fā)在線文檔
Thunder7
XAP
界面引擎
迅雷下載開放引擎
迅雷基礎(chǔ)庫
5,網(wǎng)上討論
///////////////////////////////////////////////////
(1)windowless或者稱handleless,也就是無句柄窗口,在設(shè)計(jì)和實(shí)現(xiàn)的時(shí)候,每個(gè)控件都自己實(shí)現(xiàn),最后畫到父窗口中。另一個(gè)偽windowless是用標(biāo)準(zhǔn)mfc控件,然后通過hook或其它遠(yuǎn)程線程注入等技術(shù),讓spy++等軟件,看不到窗口句柄。這主要是為了防止盜號(hào)木馬通過edit窗口句柄,盜取用戶名和密碼。
(2)windowless 或 handleless 或 DirectUI 技術(shù),將首選 WGI !WGI 后生可畏,將是永遠(yuǎn)的經(jīng)典! http://code.google.com/p/oic-wgi/downloads/list 基于C語言
(3)qq和msn都是windowless方式
(4)windowless技術(shù)并不是適用所有的軟件界面。這一點(diǎn)還需要開發(fā)者自已分清楚。
就目前來講windowless比較適用于基于對(duì)話框的應(yīng)用程序。
(5)DirectUI是目前windows平臺(tái)上最流行的一種無窗口界面技術(shù) 顯然是最不流行的技術(shù),使用無句柄方式的軟件,只是鳳毛麟角。 所有控件都是虛擬控件沒有實(shí)際窗口,因此效率更高,更安全。 這個(gè)有什么必然聯(lián)系嗎?為什么效率會(huì)高呢?安全性更是無從談起呀。用windowless就安全?
國(guó)內(nèi)流行的QQ/MSN/迅雷等都采用此種技術(shù) 這個(gè)說對(duì)了。但是,msn雖然沒有窗口句柄,但是有另一種句柄,為此,軟件還做了類似spy++的工具來獲得這個(gè)句柄
(6)界面開發(fā)主要解決的問題是:如何把美工的創(chuàng)意,更方便的用代碼實(shí)現(xiàn)?;蛘撸缑骈_發(fā)技術(shù)限制了哪些美術(shù)創(chuàng)意的實(shí)現(xiàn)?
(7)感覺windowless,DirectUI這種技術(shù),只有這種大公司才有能力搞。 聽說QQ 搞這個(gè)東西都搞了快5年了,開發(fā)投入超千萬。
感覺這種東西要做出通用的太難了 你看QQ的所有軟件,也不是所有的軟件都是這種windowless的。 微軟的就不用說了,在msn,xp里面有些部分應(yīng)用。
我猜測(cè)他們做的這個(gè)東西,雖然可以用了,但內(nèi)部沒有全部推廣使用。原因可能是還不夠通用,還不夠成熟。
(8)微軟是因?yàn)閮?nèi)部太多界面庫了。各個(gè)部門各用各的。
QQ這種,純粹是為了自己產(chǎn)品服務(wù)的,人家也不會(huì)賣自己的庫,所以不需要通用。自已的產(chǎn)品需要什么控件,就往庫里開發(fā)什么控件。
(9)windowless作為一種新的界面技術(shù),當(dāng)然要重新實(shí)現(xiàn)Win32界面原來的提供的機(jī)制了, 窗口的剪裁、激活、繪制、消息循環(huán),每一個(gè)新的界面機(jī)制都要自己實(shí)現(xiàn)這些東西的, 這怎么算致命的缺點(diǎn)呢?
我個(gè)人還是很喜歡windowless的界面機(jī)制的,非常自由,開發(fā)者可以天馬行空的實(shí)現(xiàn)自己的想法創(chuàng)意, 傳統(tǒng)的win32架構(gòu)界面開發(fā)總有種帶著鐐銬跳舞的感覺。
(10)windowless可以增加破解外掛的難度,也就是增加了破解的門檻,不是隨便會(huì)弄個(gè)對(duì)話框程序就可以破解,但還是不能根本解決問題,QQ登錄密碼,一樣可以拿到。
(11)wpf慢死你~學(xué)那么多技術(shù)干嘛,學(xué)好win32就可以了。wpf過幾年沒了,就出來了fpw了
(12)從CWnd直接派生,也可以天馬行空的實(shí)現(xiàn)自己的想法創(chuàng)意。并且在實(shí)現(xiàn)創(chuàng)意是,不用考慮另人頭痛的剪裁、焦點(diǎn)、消息循環(huán)等等與界面不相關(guān)的東東。
(13)wpf與我討論的windowless不是一個(gè)概念。 我說的windowless,是指咱們普通人或一般公司開發(fā)的。wpf也是windowless,當(dāng)然不致命,也不是缺點(diǎn)了。并且大部分界面編程的人,都應(yīng)該學(xué)學(xué)的。你學(xué)習(xí)一個(gè)小公司內(nèi)部的windowless產(chǎn)品,說句不好聽的,跳槽也不好找工作,當(dāng)然,如果你是這個(gè)windowless產(chǎn)品的設(shè)計(jì)者,那你還是很吃香的。wpf雖然已經(jīng)誕生很多年了,但國(guó)內(nèi)到現(xiàn)在依然沒有普及,那是因?yàn)閤p現(xiàn)在還占據(jù)大部分人的桌面,學(xué)習(xí)wpf,會(huì)有更多工作機(jī)會(huì)。我考查了部分windowless產(chǎn)品,包括號(hào)稱輕量化wpf的windowless的產(chǎn)品,離wpf相去甚遠(yuǎn),wpf中的數(shù)據(jù)綁定、布局、資源、事件、動(dòng)畫、3D等等核心或非核心技術(shù),統(tǒng)統(tǒng)沒有。
(14)其實(shí)樓主說了這么多,無非就是一點(diǎn):“windows做完這一整套東西已經(jīng)是相當(dāng)大的工作量,大家再重新開發(fā)完全得不償失而且難以達(dá)到Windows gui的穩(wěn)定性”。 但在看來,Windows那套框架由于開發(fā)的年代太久,很多概念太落后了。各種元素的復(fù)用性太差。這點(diǎn)和swing對(duì)比就知道。所以自己開發(fā)Windowless的好處就是鍛煉自己的構(gòu)架能力。 不過我還是比較同意樓主的觀點(diǎn)。要想寫成Windows那么穩(wěn)定的gui,要相當(dāng)大的耐心和工作量。 而樓主贊同wpf,我不敢茍同,具體可見:http://topic.csdn.net/u/20110125/14/4702420d-8d03-46cb-99a7-8001771e2127.html?62503 里面有段話很經(jīng)典:“第五個(gè)問題是慢,驚人的慢。大家可以看看“飛信”,這是一個(gè)微軟控主導(dǎo)決策的,嗯,使用.net 2.0。為了解決程序發(fā)布的問題,專門弄了個(gè)微型的.net框架,但是你將它與QQ比,是不是覺得慢得太多?持續(xù)多年以后,移動(dòng)的先生們不耐煩了,才有的現(xiàn)在的基于C++的原生版本,請(qǐng)比較一下速度。這里特別提醒一下,飛信的開發(fā),是中國(guó)移動(dòng)投入巨資、得到微軟中國(guó)整個(gè)團(tuán)隊(duì)無微不至的支持的,這些高人甚至赤膊上陣親自動(dòng)手,這樣使用他們的開發(fā)工具,歷時(shí)數(shù)年也不過是做出一個(gè)被淘汰的產(chǎn)品。先生,請(qǐng)掂量一下,你比他們這些家伙更厲害嗎?你比孩子的母親對(duì)孩子更了解嗎?”
(15)如果需要文檔/視圖的話,還是用mfc好了,現(xiàn)在mfc很漂亮了,像office2007。 vs2010貌似wpf做的,恩 確實(shí)佩服。 不知道office2010是怎么做的。
緊跟大公司新技術(shù)吧,要不就找個(gè)認(rèn)為設(shè)計(jì)的好的開源項(xiàng)目,一直用、一直改。不過跟著大公司走還是最好的選擇吧
(16)丟一個(gè)這東西出來好了。 http://www./code/windowless1.htm 雖然這東西的模型設(shè)計(jì)的我不太喜歡,不過絕對(duì)是學(xué)習(xí)的好材料。而且本身也非常美觀,這是gdi做的windowsless。
(17)我其實(shí)把mfc和windowless都?xì)w到win32技術(shù)體系的,實(shí)現(xiàn)上windowless也是用mfc開發(fā),只不過不使用它默認(rèn)的CButton等這些控件,仍然使用GDI或GDI+等技術(shù)來繪制。正如你說的,這個(gè)體系有點(diǎn)久遠(yuǎn),所以微軟設(shè)計(jì)了wpf,來逐步代替win32。到目前為止wpf還是不成功的。但我堅(jiān)信,遲早一天會(huì)成功的。wpf開發(fā)的產(chǎn)品,體積又大,運(yùn)行速度又慢,是制約它發(fā)展的最大瓶頸。不過vs2010采用wpf開發(fā)后,發(fā)現(xiàn),像vs2010這么大規(guī)則的項(xiàng)目,其實(shí)運(yùn)行速度已經(jīng)很快了,不比vs2008差多少?;蛟Smicrosoft做過優(yōu)化?
(18)到討論成這樣了,那gtk,qt這類的怎么活啊.
我也拋一個(gè)出來,娛樂一下 Nana C++ Library http://stdex.
(19)嘿嘿, 我喜歡GTK。 見到看到一篇文:Qt vs GTK
另外, VS2010中,MFC已經(jīng)做了大量的擴(kuò)充,可以做出漂亮的界面的
(20)如果非要用Direct UI做項(xiàng)目,從研發(fā)成本考慮,還不如直接花錢買一套UI庫,我看這個(gè)公司的就不錯(cuò):http://www./,所有的控件全部用接口的形式訪問。
(21)對(duì)微軟來說,做一個(gè)NATIVE-WPF易如反掌。蔣晟大大也說過,微軟內(nèi)部也討論過這個(gè)問題,不過最終放棄了。這個(gè)可以理解,WPF是.NET的殺手锏,如果把這個(gè)殺手锏轉(zhuǎn)交給非托管語言,對(duì).NET戰(zhàn)略是致命的。我還真想知道,如果沒有WPF,還有多少人會(huì)選擇.NET。討論這個(gè)沒有意義。
還是回到windowless吧。近幾年很多人關(guān)注DirectUI/Windowless,卻不知DirectUI為何物。我曾經(jīng)在某個(gè)帖子里面做過比喻:DirectUI = Window + Windowless,所有在屏幕上顯示的東西都是DirectUI方式,3D是,瀏覽器是,連普通窗口也是,大家都在顯存的同一塊區(qū)域顯示所有內(nèi)容,哪里分什么有窗口無窗口。為什么要把窗口分成有句柄和無句柄呢?因?yàn)槲④浀挠芯浔翱谑枪I(yè)標(biāo)準(zhǔn),操作方式有章可循,窗口API大家耳熟能詳,家家戶戶都用沒有鎖的門窗,所有人都知道該怎么操作窗口,偷雞摸狗的人當(dāng)然也知道,所以第一個(gè)問題就是標(biāo)準(zhǔn)帶來了更高的安全風(fēng)險(xiǎn),于是乎很多人開始希望在自家門窗上加一把鎖,而且只有自己有鑰匙。最早加鎖的人還是微軟自己,MSN要保護(hù)用戶隱私,搞了個(gè)DirectUIHWND,被人發(fā)現(xiàn)后,DirectUI這個(gè)名稱就逐漸擴(kuò)散開來,也有越來越多的軟件給自己的窗口加了鎖。從這個(gè)時(shí)候起,DirectUI = Windowless,就是為了跟不安全的有句柄窗口區(qū)別開來。DirectUI 的另一層含義就是隱秘、非標(biāo)準(zhǔn),這個(gè)概念會(huì)在用戶心里生根,一旦有哪家的所謂 DirectUI 窗口因?yàn)榱餍卸恍页蔀榱硪粋€(gè)標(biāo)準(zhǔn),它絕對(duì)會(huì)被人們踢出 DirectUI 陣營(yíng),結(jié)局跟有句柄窗口沒什么兩樣,就因?yàn)樘珮?biāo)準(zhǔn)而失去了隱秘的特性。也正是因?yàn)殡[秘、非標(biāo)準(zhǔn)的特性,多少人削尖腦袋想找到 DirectUI 框架、類庫、標(biāo)準(zhǔn),結(jié)果是找不到的,因?yàn)闆]有標(biāo)準(zhǔn)。反過來說,只要不是標(biāo)準(zhǔn)的,都可以叫做 DirectUI,人人都可以自夸我的窗口是 DirectUI,其實(shí)不用夸,本來就是,夸多了會(huì)誤導(dǎo)更多人。
當(dāng)然,Windowless 不僅僅是為了安全,在能力上自然也有自己的過人之處,這些能力就交給樓主來總結(jié)吧,我只舉個(gè)最小的例子:如果想讓一個(gè)窗口的某個(gè)子控件藏在背景貼圖的后面,普通窗口是辦不到的,對(duì)Windowless來說輕而易舉。
(22)你忽視了handless一個(gè)最大的好處,就是無閃爍繪圖,使用思想老舊的win32控件是很難做到毫無閃爍的。
p.s 現(xiàn)在騰訊全系列產(chǎn)品都是DirectUI??梢钥吹?,它所有窗口的類名是TXGuiFoundation,它的目的很明顯就是想成為騰訊的MFC(Microsoft Foundation Classes)。
(23)duilib 庫不錯(cuò),是開源的?!,F(xiàn)在正在發(fā)展。希望各位可以參與 www.duilib.org
(24)這個(gè)和閃爍沒有任何關(guān)系。win32方式,可以做的一點(diǎn)閃爍也沒有。windowless,如果做不好,也是非常閃的。另外,所我了解,DirectUI是有copyright的,是個(gè)公司的產(chǎn)品名,不能隨便叫。
騰訊公司使用這種無窗口方式,一是為了防止第三方外掛。人家自己開發(fā)自己用,當(dāng)然一點(diǎn)問題沒有。某個(gè)人離職了,還會(huì)有新來的人開發(fā),不用擔(dān)心出了問題沒人管。
(25)樓主洋洋灑灑寫了這么多,從你列舉的諸多缺點(diǎn)里面我可以看出你的水平,你最多只是了解一些MFC,你可知除了MFC框架還有很多,而且更加優(yōu)秀。 其他的不討論,我就把你所說的缺點(diǎn)一條一條的給你反駁吧
1:無窗口句柄只是內(nèi)部的顯示控件沒有句柄,對(duì)這些控件的顯示與否完全可以通過 一個(gè)Show方法重新進(jìn)行封裝,而且可控性更強(qiáng) 每個(gè)控件也同樣有自己的坐標(biāo)屬性,比如Top,Left 來進(jìn)行移動(dòng)!
2:消息從來沒有作廢,每個(gè)控件也同樣有自己的消息處理函數(shù),只是我們?cè)诖绑w消息循環(huán)里面把需要的消息派發(fā)給這些自定義控件就可以了
關(guān)于以上兩點(diǎn)你可以了解一下VCL,可以說用Delphi隨便拖幾個(gè)控件(從TGraphicControl繼承)上去就是一個(gè) Windowless界面了。有時(shí)你甚至感覺不出來 這些TGraphicControl控件和不同的標(biāo)準(zhǔn)控件有什么不同。
3:如果你的程序?qū)懞昧?,更換界面需要花費(fèi)的時(shí)間比開發(fā)時(shí)間還長(zhǎng),只能說這個(gè)軟件架構(gòu)就是一坨屎!連最簡(jiǎn)單的邏輯和界面分離都沒有把握好?
4:你用過別人開發(fā)的windowless控件嗎? 學(xué)習(xí)更多地東西會(huì)影響你的職業(yè)生涯嗎?
5:軟件的穩(wěn)定和可靠性完全不是界面的事! 你還是先分清界面和邏輯功能的不同吧。
6:還是架構(gòu)問題!功能層代碼應(yīng)該完全和界面分離,如果你采用發(fā)送消息就已經(jīng)是把功能和界面綁死了! 為什么不把界面設(shè)計(jì)成實(shí)現(xiàn)一個(gè)接口,比如有Update() 方法,不管界面采用何種方式,只要實(shí)現(xiàn)了接口中的Update方法就可以了。
7:這些都有成熟的機(jī)制,裁剪和坐標(biāo)變化就兩個(gè)函數(shù),繪制如果想要漂亮的界面不管你采用什么方法,都要繪制的。
8: 按你這條的意思在C#,JAVA剛出來的時(shí)候我也可以這樣說:全球幾乎所有的軟件都是使用C,C++開發(fā)的.......。 Windowless也是一種思想,wpf只不過是這種思想的一種實(shí)現(xiàn)罷了。
9:后期漢化..對(duì)這條:配置文件!你不是用過ini,xml嗎? 對(duì)多語言的支持不僅僅是翻譯一下,界面也要進(jìn)行調(diào)節(jié), 你就是采用標(biāo)準(zhǔn)的win32控件不也要配置? 后面的運(yùn)行去其他程序發(fā)來的標(biāo)準(zhǔn)消息,這個(gè)需求我不懂什么時(shí)候要用到: 給木馬病毒留的后門?
10:這條才是你真是水平! 文檔/視圖不是MFC的專利,這是一種架構(gòu)思想,如果脫離了MFC就不能使用文檔/視圖架構(gòu)只能說 你就是一個(gè)填代碼的苦力。 那我又問你: 你們項(xiàng)目采用Wpf,里面也沒有文檔/視圖架構(gòu)??! 你不快終結(jié)項(xiàng)目,繼續(xù)MFC。。。
你眼中這些技術(shù)僅僅是表面的技術(shù),完全沒有看到各種架構(gòu),各種設(shè)計(jì)的本質(zhì)思想,所以你不會(huì)熟練運(yùn)用它們,最后只會(huì)調(diào)用現(xiàn)成的方法! 我最后總結(jié):你僅僅是弄了幾年界面,搶了美工的活!
///////////////////////////////////////////////////
(1)DirectUI是一種技術(shù)簡(jiǎn)稱,也叫windowless,不要被忽悠了。 國(guó)內(nèi)做DirectUI的公司很多,有bodsoft,uieasy,uipower。 還有開源的duilib,那個(gè)uipower只是占了個(gè)directui的域名而已。
建議考慮迅雷7的界面引擎,目前已經(jīng)開放了,都可以用。 文檔各方面會(huì)不斷完善,有興趣可加QQ群:62552336 http://xldoc.xl7.xunlei.com/0000000018/index.html
(2)迅雷7用DirectUI做出的效果就很漂亮。
(3)如果大家有興趣,可以看看SKINSE界面庫。至于SKINSE到底怎么用?我相信下載看過的人會(huì)明白!?。?br>http://www./
(4)DirectUI做出的界面效果還可以,不過自身也要有過硬的技術(shù)做基礎(chǔ)。 樓主可以借鑒一下qq的界面,貌似qq從2007開始就一直在用DirectUI做界面。不過真實(shí)性無從考證。
(5)雖然DirectUI開發(fā)界面的效果不錯(cuò),但是目前國(guó)內(nèi)用DirectUI和懂DirectUI的人并不多。
(6)如果MFC足夠好用,可能會(huì)有那么多UI庫嗎?說句不好聽的,如果不是VC捆綁MFC,還會(huì)有多少人用不倫不類的垃圾MFC!
///////////////////////////////////////////////////
(1)今年開始玩DirectUI,參考老外的程序,寫了個(gè)DirectUI的Demo, 支持各種Layout,實(shí)現(xiàn)了各種基本控件(SplitBar, PictureBox, Button, Radio, CheckBox, Label, HyperLink, ProgressBar, trackBar, ListBox, Edit, ComboBox, Tab Control, Toolbar, Menu, tree),支持鍵盤導(dǎo)航,支持Tooltip,支持多語言,支持換膚,支持異形窗口,支持插件2次開發(fā),支持Alpha通道,支持各種圖像處理。
然后最近開始學(xué)WPF,學(xué)后自己的程序就不想再寫了,感覺再寫基于GDI的DirectUI已經(jīng)沒多少意義,基本上QQ的UI已是基于GDI的DirectUI的極致了。
感覺理想的DirectUI設(shè)計(jì)上可以仿WPF,底層Render方式可以切換(Direct3D, OpenGL, GDI), 支持腳本,并且跨平臺(tái),應(yīng)用程序和游戲都可以用,現(xiàn)在我還沒找到這么一套東西,不知大家對(duì)DirectUI怎么看?
Demo下載:http://download.csdn.net/detail/weiym/3698407
(2)要是支持那么多功能話,那得多大,這種界面庫以盡量輕量級(jí)比較好,否則和WPF又有什么區(qū)別呢。 你要想那樣的話,干脆直接界面用WPF或SilverLight吧,跨平臺(tái)也支持硬件加速,支持XAML、CSS什么的……
(3)這樣的東西不一定大的,比如Render方式是可插拔的,根據(jù)不同的情況加載不同Render Engine就好了。 腳本支持一般是JavaScript,也是插件的方式,可以打開或關(guān)閉,可以考慮用Chrome的V8或是SpiderMonkey, Windows平臺(tái)上也可以直接用MS IActiveScript. 跨平臺(tái)很重要,可以在嵌入式里使用,所以Render一般可以用OpenGL,這樣MAC什么的都支持。
雖說工程比較龐大,編譯出的東西其實(shí)不一定大的。就像WPF,如果脫離.Net,其實(shí)也就幾個(gè)DLL。
(4)WPF和DirectUI確實(shí)如出一轍?。。簠^(qū)別也有些: 就是DirectUI可以是GDI的,也可以是GDI+的。 而WPF本質(zhì)是GDI+的【底層可能也用到硬件加速】,
另外不同的是WPF的抽象更好,而且WPF/Silverlight更為輕量【當(dāng)然了,排除掉.Net的部署的考慮】
大多數(shù)C++的DirectUI停留在XML配置靜態(tài)UI,然后C++來實(shí)現(xiàn)后臺(tái)邏輯。 而WPF更近一步,XAML除了配置UI,也可以指定一定的動(dòng)畫。
大多數(shù)的C++的一個(gè)Xml就是一個(gè)完整的UI,不能嵌套,缺乏重用性。 而WPF的XAML可以有更好的模塊化,可以通過網(wǎng)絡(luò)Laz-Loading。 ----------------------------------------------------------------------------------------
當(dāng)然了。。。真正寫軟件的時(shí)候,WPF就靠邊站了。。。 QQ是C++DirectUI的,360安全桌面,軟件管家是C++DirectUI的,金山很多產(chǎn)品也是C++DirectUI的【而且開源了,有人把它的UI抽出來了】
Qt的QML本質(zhì)也算是C++DirectUI的。
但是問題是現(xiàn)在C++DirectUI的方式會(huì)越來越少了。。。 ------------------------------------------------------------------------------------------
Win8會(huì)更多支持HTML5,估計(jì)WPF也會(huì)被支持的很好。 iOS/MAC OS X人家無所謂,UI總是那么簡(jiǎn)單弱智,沒有什么換膚的需求【我很少看到哪個(gè)Mac的程序還支持換膚,而且Mac的程序感覺UI都很簡(jiǎn)單?!?nbsp;
------------------------------------------------------------------------------- 我自己也在做DirectUI,是基于WTL的,而不是基于MFC的。感覺WTL的消息映射宏很帥!
(5)目前開源的duilib就支持動(dòng)態(tài)添加控件啊,插入一段Xml控件描述即可生成相應(yīng)控件,絕不是靜態(tài)UI 基于gdi的directUI更適合移植
(6)討論DirectUI已經(jīng)沒有意思了,這個(gè)玩意兒已經(jīng)被炒爛了,自繪而已,加上一點(diǎn)消息處理,沒東西了。
XML描述UI更是噱頭,一種配置格式而已,跟INI、對(duì)話框模板沒有本質(zhì)區(qū)別。再高級(jí)再動(dòng)態(tài)的XML描述也擺脫不了需要指定控件位置大小的局限。唯一不需指定控件位置且全自動(dòng)布局的只有HTML。
腳本就不要強(qiáng)求了,只是一個(gè)更具靈活性的擴(kuò)展方式而已。如果在體系結(jié)構(gòu)上不能整理出完整統(tǒng)一的對(duì)象模型,還不如不要腳本,要不然腳本編寫者會(huì)不停抱怨這個(gè)功能沒有、那個(gè)功能沒有,底層更新代碼都得累死。
硬件加速的渲染,如果沒有足夠的積累,還是不要輕易去碰,這是找罪受,不光是門檻太高的原因,個(gè)中滋味自己試試就知道了。這句是我最大的忠告。
動(dòng)畫,有一點(diǎn)點(diǎn)就可以了,沒有太呆板,多了傷眼睛,我現(xiàn)在很煩瀏覽器中鋪天蓋地的FLASH動(dòng)畫。這是UI和游戲的最大區(qū)別,游戲沒動(dòng)畫就沒法玩了。好在動(dòng)畫門檻不高,搞點(diǎn)小特效還算比較容易。做個(gè)通用動(dòng)畫也不算太難,WPF中的通用動(dòng)畫技術(shù)還是很值得借鑒的,因?yàn)槿思铱偨Y(jié)得非常好。
跨平臺(tái),見仁見智吧,我覺得自己沒有多少發(fā)言權(quán)。定好目標(biāo)客戶再?zèng)Q定要不要跨平臺(tái)。跨平臺(tái)的難度不在于多平臺(tái)編碼經(jīng)驗(yàn),而是設(shè)計(jì)水平。
一家之言,我也是搞UI庫的,上面的所有技術(shù)我都嘗試過。不過可惜,沒定好用戶群,有嚴(yán)重的方向性錯(cuò)誤。
(7)網(wǎng)上有開原的DUILib,核心的消息分發(fā)代碼是類似的,你可以直接參考他的學(xué)習(xí)。
(8)現(xiàn)在看來WPF是最優(yōu)秀的DirectUI, 他底層應(yīng)該是基于D3D的。 配置的XML能處理一些簡(jiǎn)單的邏輯和動(dòng)畫配置,都是不是太難。 QT沒怎么用過,個(gè)人覺得它在Windows上的跨平臺(tái)應(yīng)該還是基于窗口的。 C++方式的DirectUI,個(gè)人覺得在嵌入式應(yīng)該有廣泛應(yīng)用,在Windows上的話界面和性能要求都比較高的時(shí)候還是有競(jìng)爭(zhēng)力的,當(dāng)然前提是這套DirectUI基于D3D。
(9)多謝忠告,個(gè)人覺得跨平臺(tái)是DirectUI的優(yōu)勢(shì),在windows和Mac上它或許沒多少競(jìng)爭(zhēng)優(yōu)勢(shì),但是在嵌入式和手機(jī)平臺(tái)開發(fā)上,DirectUI還是很有價(jià)值的。另外WPF的設(shè)計(jì)思想對(duì)于設(shè)計(jì)一套優(yōu)秀的DirectUI Library 還是很有借鑒意義的。
(10)你說得對(duì),3D的玩意兒在嵌入式可能更有市場(chǎng),這也是我努力的目標(biāo)。為嵌入式設(shè)備定制大量的3D特效,也不需要為PC的那些懶用戶制作UI設(shè)計(jì)器了,在桌面市場(chǎng)做3D-UI感覺有點(diǎn)吃力不討好。
(11)我在WinCE中使用DirectUI, PC機(jī)下確實(shí)意義不大,嵌入式的卻比較好.
(12)界面的核心永遠(yuǎn)在于布局,審美,而不在于技術(shù),DUI已經(jīng)沒嚼頭了。
|