UIPro 一個DirectUI庫

UIPro 一個新的DirectUI庫

先貼出一個使用UIPro開發的一個模仿QQ的界面效果:【不需要編寫代碼,只需要寫xml文件即可,使用相對佈局】


利用一些週末時間還有假期時間,寫了一個DirectUI庫,我取名爲UIPro。

1. 整個工程是以工廠模式展開,UI Control都是windowless,非窗口模式。

2. 對庫的編譯控制,目前是通過宏開關進行的控制。

一:目前實現的基礎UI控件如下:
1.static:
其實有兩種static控件,第一種,可以根據字符串的長度自動出現滾動條(可以選擇顯不顯實水平滾動條);另一種是simple static,不支持滾動條,支持font color標籤
2.progress
3.combox:支持可編輯的和不可編輯模式
4.button: push/check box/radio box
5.gif
6.list:
支持列高度固定還有不固定;支持拖拽,單選/多選;大圖標,小圖標,列表,報表等樣式。
7.tab
8.icon
9.slider
10.hyperlink
11.groupbox
12.tree 樹控件
13.windowless rich edit:
佔用資源少,效率高,可以實現的效果好。也實現了支持插入圖片、gif等。
14.windowless flash control:
寫了個ax window host支持flash控件的windowless模式,比如可以實現QQ魔法表情QQ秀
15.out look
16.menu:
不是自繪微軟的menu,也不是hook微軟的menu類,而是全新寫的一個menu類,可以從xml中加載菜單。輕鬆實現帶陰影透明的菜單效果,例如QQ主菜單等。
17.scrollbar
18.scrollpanel:
這個是一個輔助控件,如果一個控件想要得到滾動條的支持,做它的paneinner控件就行了
19.paneinner:與scrollpanel結合實現帶滾動條的複合控件,用戶只需要關心繪製,還有畫布的大小,滾動由scrollpanel自動提供支持
20.ie: 實現了ax window host,用以支持 IOleCommandTarget,IDocHostShowUI,IDownloadManager,IInternetSecurityManager 等接口,可以對IE控件很好的控制,可以用來實現IE內核的瀏覽器哦。

基礎控件就列舉這麼多,控件與控件的合用,可以實現一些較爲複雜的控件。

二:自定義控件的能力:
用戶可以自由實現自己的控件,只需要實現接口定義的函數即可。

三: com activex控件:
實現了CUIAxHostWindow類,該類提供com activex控件的基礎host,例如該庫中的flash,ie都是使用的CUIAxHostWindow;
接下來說說CUIAxWindowImpl類,這個是一個模板類,flash ie的窗體都是派生自該類,控件創建成功,自動安裝事件的連接點。

四:多 UI引擎 的支持
因爲都是接口依賴,只要實現了IUIEngine接口,都可以做爲UIPro的UI引擎;第一版的UI引擎是gdi plus;以後會加入directx opengl等支持GPU硬加速的繪製引擎,成熟的第三方實現的開源2D、3D引擎庫;使用者也可以實現自己的UI引擎。

五: rgn
提供了根據背景圖片的透明度來裁剪RGN,實現圓角,異形窗口;還有內置的高效的美觀的圓角rgn生成函數

六: UI 與 邏輯的分離
目前支持javascript、vbscript;
lua等待後續支持 


七: 自動排版

目前支持絕對佈局和(類andriod的)相對佈局

UIPro因完全採用DirectUI的方式,需要做的,就是處理圖層,效果絢麗;稍加修改就能適用於觸摸屏UI。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章