svn: https://x-framework.googlecode.com/svn/trunk 建議重新下載代碼
很久沒有在svn上更新這套庫里,但自己有時間的時候都在開發增加功能。這次的更新主要是在對activex的支持,一個界面庫若想成為框架,必須具備這種包容性,至少flash /webbrowser等主流的控件還是會經常用到的。這一次主要是實現了無窗口的flash、mediaplay和sl插件,實現了mshtml和webbrowser的容納,參考有vc的sdk和國外對無窗口activex的研究,目前操縱接口僅僅供run,沒有深度的wrapper。
還有一件事情就是糾正了之前的錯誤思想,對chrome的基礎庫私自做了大量修改導致維護更新很麻煩,目前基本上保持了對應,至少我自己跟蹤代碼的變更還是比較方便。這個過程中自己學到了很多非技術的東西,技術上也看到了google工程師對設計的精益求精。Chrome對頂層窗口的改造部分,我一直有一些說不出的感覺,代碼中說了一堆理由闡述為何在下面預留1px的nc區,但是我在之前沒有預留的時候反而更好。
整個工程的結構如下:
x-framework
|
--bin(可執行程序)
|
--examples(示例源碼)
|
--demos(基礎控件展示)
|
--desktop(chrome桌面,不知道有何意圖)
|
--igantt(一個計劃的圖形產品)
|
--net_base_test(暫時無用)
|
--status_tray(應用層托盤庫,很?。?/div>
|
--wanui_res(庫依賴的資源)
|
--lib(框架庫)
|
--library(庫源碼)
|
--base(基礎庫,標準算法、字符串、內存工具、統計工具、多線程編程工具、窗口API封裝、消息泵等)
|
--net_base(暫時無用)
|
--skia(skia在windows平臺使用的基本封裝,主要是設備和位圖的轉換,支持32位位圖)
|
--third_party(第三方庫)
|
--ui_base(作為view庫的基礎,對windows的消息事件等做了一層封裝和擴展)
|
--ui_gfx(為view庫提供更好地圖形封裝,點線面路徑圖像支持、坐標轉換支持)
|
--view(基于windows的頂層窗口對窗口世界的chrome化,兼容無窗口和有窗口的界面引擎,我增加了一些擴展)
一些demo截圖:

這些示例盡管一眼看上去并不是那么震撼,局限因素不是技術,目前的問題就是控件數量不夠豐富,chrome里面無窗口的控件繪制采用了native主題,當然這或許不是我目前非常看重的,它能給開發者提供的便利性才是我追求的。早期版本我也在正式的項目中采用,使用的過程中,掌握了很多技巧,也走了彎路。對于一個強大的庫,如果使用的不好可能反而覺得別扭。
posted on 2011-08-24 19:49
萬連文 閱讀(6241)
評論(19) 編輯 收藏 引用 所屬分類:
小作品
FeedBack:
# re: 基于Chrome開源提取的界面開發框架 三(.2)
2011-08-25 18:25 |
這個框架還真蠻好的 但要是真的去看代碼的話,也太多了點
回復 更多評論
# re: 基于Chrome開源提取的界面開發框架 三(.2)
# re: 基于Chrome開源提取的界面開發框架 三(.2)
2011-08-28 19:32 |
@wzx
沒有去掉啊,在textfiled里面
回復 更多評論
# re: 基于Chrome開源提取的界面開發框架 三(.2)
2011-08-28 23:51 |
lib_skia-vc90-mt-sd.lib(bitmap_platform_device_win.obj) : error LNK2019: 無法解析的外部符號 __imp__GdiAlphaBlend@44,該符號在函數 "public: virtual void __thiscall skia::BitmapPlatformDevice::DrawToNativeContext(struct HDC__ *,int,int,struct tagRECT const *)" (?DrawToNativeContext@BitmapPlatformDevice@skia@@UAEXPAUHDC__@@HHPBUtagRECT@@@Z) 中被引用
1>../../bin/net_base_test-d.exe : fatal error LNK1120: 1 個無法解析的外部命令
每個例子都會出現這個錯誤啊,求大神幫忙哈
回復 更多評論
# re: 基于Chrome開源提取的界面開發框架 三(.2)
2011-08-29 08:00 |
@Charm
請確認library的庫都編譯成功,準確來說是里面skia工程是否編譯成功,如果還是不行,請嘗試:
1、GdiAlphaBlend-》AlphaBlend
2、如果還是不行,請在示例工程的鏈接中加入msimg32.lib
回復 更多評論
# re: 基于Chrome開源提取的界面開發框架 三(.2)
2011-08-29 17:50 |
1、GdiAlphaBlend-》AlphaBlend
這個是說把整個工程的GdiAlphaBlend改為AlphaBlend ?
回復 更多評論
# re: 基于Chrome開源提取的界面開發框架 三(.2)
2011-08-29 18:46 |
@Charm
更具MSDN:GdiAlphaBlend == AlphaBlend ,所以你可以這么做,不過我這邊是沒有問題,也沒有人提起過這個問題,所以我不是很確定你那邊發生了什么。
回復 更多評論
# re: 基于Chrome開源提取的界面開發框架 三(.2)
2011-08-30 00:40 |
@萬連文
謝謝大師哈,修改后確實可以了,有例子就可以好好研究代碼了,呵呵,謝謝哈
回復 更多評論
# re: 基于Chrome開源提取的界面開發框架 三(.2)
# re: 基于Chrome開源提取的界面開發框架 三(.2)
2011-08-31 12:40 |
@ces
標簽頁屬于browser層,目前正在向辦法做一個實例,因為耦合太重,可能需要一些時間。
回復 更多評論
# re: 基于Chrome開源提取的界面開發框架 三(.2)
2011-08-31 17:45 |
哥哥,啟動時出錯,咋回事
[0831/173749:FATALFATAL:c:\users\x-framework\library\ui_base\resource\resource_bundle.cpp(356)] Check failed: locale_resources_data_ != NULL. unable to load generated resources
這個斷點,一直為空,不曉得啥子沒加載到
回復 更多評論
# re: 基于Chrome開源提取的界面開發框架 三(.2)
2011-08-31 18:38 |
@ma
需要編譯那個wanui_res資源文件
回復 更多評論
# re: 基于Chrome開源提取的界面開發框架 三(.2)
# re: 基于Chrome開源提取的界面開發框架 三(.2)
# re: 基于Chrome開源提取的界面開發框架 三(.2)
2011-09-01 14:41 |
如果像chromium打開about:about,chrome://extensions/一樣打開你的tab頁就更好了
回復 更多評論
# re: 基于Chrome開源提取的界面開發框架 三(.2)
2011-09-01 16:06 |
@ces
目前正在做相關的事情,會做一個最小chrome界面框架子集。
回復 更多評論
# re: 基于Chrome開源提取的界面開發框架 三(.2)
# re: 基于Chrome開源提取的界面開發框架 三(.2)[未登錄]
2011-10-21 09:34 |
chrome應該有scroolbar吧,動畫這個蠻好沒有scrollbar的話太別扭了
回復 更多評論
# re: 基于Chrome開源提取的界面開發框架 三(.2)[未登錄]