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

這些示例盡管一眼看上去并不是那么震撼,局限因素不是技術(shù),目前的問題就是控件數(shù)量不夠豐富,chrome里面無窗口的控件繪制采用了native主題,當(dāng)然這或許不是我目前非??粗氐?,它能給開發(fā)者提供的便利性才是我追求的。早期版本我也在正式的項(xiàng)目中采用,使用的過程中,掌握了很多技巧,也走了彎路。對(duì)于一個(gè)強(qiáng)大的庫(kù),如果使用的不好可能反而覺得別扭。
posted on 2011-08-24 19:49
萬連文 閱讀(6277)
評(píng)論(19) 編輯 收藏 引用 所屬分類:
小作品
FeedBack:
# re: 基于Chrome開源提取的界面開發(fā)框架 三(.2)
# re: 基于Chrome開源提取的界面開發(fā)框架 三(.2)
# re: 基于Chrome開源提取的界面開發(fā)框架 三(.2)
# re: 基于Chrome開源提取的界面開發(fā)框架 三(.2)
2011-08-28 23:51 |
lib_skia-vc90-mt-sd.lib(bitmap_platform_device_win.obj) : error LNK2019: 無法解析的外部符號(hào) __imp__GdiAlphaBlend@44,該符號(hào)在函數(shù) "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 個(gè)無法解析的外部命令
每個(gè)例子都會(huì)出現(xiàn)這個(gè)錯(cuò)誤啊,求大神幫忙哈
回復(fù) 更多評(píng)論
# re: 基于Chrome開源提取的界面開發(fā)框架 三(.2)
2011-08-29 08:00 |
@Charm
請(qǐng)確認(rèn)library的庫(kù)都編譯成功,準(zhǔn)確來說是里面skia工程是否編譯成功,如果還是不行,請(qǐng)嘗試:
1、GdiAlphaBlend-》AlphaBlend
2、如果還是不行,請(qǐng)?jiān)谑纠こ痰逆溄又屑尤雖simg32.lib
回復(fù) 更多評(píng)論
# re: 基于Chrome開源提取的界面開發(fā)框架 三(.2)
2011-08-29 17:50 |
1、GdiAlphaBlend-》AlphaBlend
這個(gè)是說把整個(gè)工程的GdiAlphaBlend改為AlphaBlend ?
回復(fù) 更多評(píng)論
# re: 基于Chrome開源提取的界面開發(fā)框架 三(.2)
2011-08-29 18:46 |
@Charm
更具M(jìn)SDN:GdiAlphaBlend == AlphaBlend ,所以你可以這么做,不過我這邊是沒有問題,也沒有人提起過這個(gè)問題,所以我不是很確定你那邊發(fā)生了什么。
回復(fù) 更多評(píng)論
# re: 基于Chrome開源提取的界面開發(fā)框架 三(.2)
# re: 基于Chrome開源提取的界面開發(fā)框架 三(.2)
# re: 基于Chrome開源提取的界面開發(fā)框架 三(.2)
2011-08-31 12:40 |
@ces
標(biāo)簽頁(yè)屬于browser層,目前正在向辦法做一個(gè)實(shí)例,因?yàn)轳詈咸?,可能需要一些時(shí)間。
回復(fù) 更多評(píng)論
# re: 基于Chrome開源提取的界面開發(fā)框架 三(.2)
2011-08-31 17:45 |
哥哥,啟動(dòng)時(shí)出錯(cuò),咋回事
[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
這個(gè)斷點(diǎn),一直為空,不曉得啥子沒加載到
回復(fù) 更多評(píng)論
# re: 基于Chrome開源提取的界面開發(fā)框架 三(.2)
# re: 基于Chrome開源提取的界面開發(fā)框架 三(.2)
# re: 基于Chrome開源提取的界面開發(fā)框架 三(.2)
# re: 基于Chrome開源提取的界面開發(fā)框架 三(.2)
2011-09-01 14:41 |
如果像chromium打開about:about,chrome://extensions/一樣打開你的tab頁(yè)就更好了
回復(fù) 更多評(píng)論
# re: 基于Chrome開源提取的界面開發(fā)框架 三(.2)
# re: 基于Chrome開源提取的界面開發(fā)框架 三(.2)
# re: 基于Chrome開源提取的界面開發(fā)框架 三(.2)[未登錄]
# re: 基于Chrome開源提取的界面開發(fā)框架 三(.2)[未登錄]