青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
萬星星@豌豆莢 歡迎加入我們
一個吃軟飯的男人!!!!!我只想寫程序####
微博:
http://weibo.com/wanlianwen
C++博客
首頁
新文章
新隨筆
聚合
管理
posts - 172, comments - 1253, trackbacks - 0
BCG Skin插件機制研究過程
首先聲明講的是思考問題的思路,具體skin無非采用hook subclass技術。對于一個事情全局把握,點到為止,個人覺得順藤摸瓜,抓住有效線索對于學習技術很重要。
今天無聊,想起BCG有個Skin Application,于是研究了下。
開始不明白怎么回事,用向導生產了一個Skin,看了下程序結構:
class
?CwlwSkin?:?
public
?CBCGPVisualManager
這個是Skin實現應該了,暫且不管,因為主要想看看機制。
有這些函數:
CTestSkinApp?theApp;
CRuntimeClass
*
?__stdcall?BCGCBProGetSkinClass?(
int
?iIndex)
{
????
switch
?(iIndex)
????
{
????
case
?
0
:
????????
return
?RUNTIME_CLASS?(CwlwSkin);
????
//
?TODO:?return?other?skin?classes?here
????
????}
????
return
?NULL;
}
//
*************************************************************************************
int
?__stdcall?BCGCBProGetSkinCount?()
{
????
return
?
1
;
}
//
*************************************************************************************
LPCTSTR?__stdcall?BCGCBProGetSkinName?(
int
?iIndex)
{
????
switch
?(iIndex)
????
{
????
case
?
0
:
????????
return
?_T(
"
wlwSkin
"
);
????
//
?TODO:?return?other?skin?names?here
????
????}
????
return
?NULL;
}
//
*************************************************************************************
BOOL?__stdcall?BCGCBProGetSkinVersion(
int
&
?iVersionMajor,
int
&
?iVersionMinor)
{
????iVersionMajor?
=
?_BCGCBPRO_VERSION_MAJOR;
????iVersionMinor?
=
?_BCGCBPRO_VERSION_MINOR;
????
return
?TRUE;
}
//
*************************************************************************************
BOOL?__stdcall?BCGCBProIsUNICODE()
{
#ifdef?_UNICODE
????
return
?TRUE;
#else
????
return
?FALSE;
#endif
}
//
*************************************************************************************
BOOL?__stdcall?BCGCBProPreviewSkin?(CDC
*
?pDC,?
int
?iIndex,?CRect?rectPreview)
{
????AFX_MANAGE_STATE(AfxGetStaticModuleState?())
????
switch
?(iIndex)
????
{
????
case
?
0
:
????????
{
????????????CBitmap?bmpPreview;
????????????bmpPreview.LoadBitmap?(IDB_WLWSKIN_PREVIEW);
????????????pDC
->
DrawState?(rectPreview.TopLeft?(),?rectPreview.Size?(),?
????????????????????????????
&
bmpPreview,?DSS_NORMAL);
????????}
????????
return
?TRUE;
????
//
?TODO:?preview?other?skins?here
????
????}
????
return
?FALSE;
}
//
*************************************************************************************
LPCTSTR?__stdcall?BCGCBProGetSkinAuthor?(
int
?
/**/
/*
iIndex
*/
)
{
????
return
?_T(
"
萬連文,?微軟可以么
"
);
}
//
*************************************************************************************
LPCTSTR?__stdcall?BCGCBProGetSkinAuthorURL?(
int
?
/**/
/*
iIndex
*/
)
{
????
return
?_T(
"
www.shnenglu.com/wlwlxj
"
);
}
//
*************************************************************************************
LPCTSTR?__stdcall?BCGCBProGetSkinAuthorMail?(
int
?
/**/
/*
iIndex
*/
)
{
????
return
?_T(
"
mail.google.com
"
);
}
//
*************************************************************************************
int
?__stdcall?BCGCBProGetSkinUpdate?()
{
????
return
?
1
;
}
初一看以為是導出函數(其實確實是,不過導出方法就有點隱晦,下面提到),大概是一個動態庫吧,按照一般Skin都是需要在程序里面初始化,于是匆匆生產一個程序調用。
結果發現根本沒有導出函數聲明,在回去看看原以為導出的函數,shit,上當了,不是導出函數啊???讀一下函數,BCGCBProGetSkinClass?嫌疑最大,但是怎么調用呢??一時間不可能在化大力氣去研究整個BCG吧。
突然想到以前看到過BCG帶的一個例子--BCGPSkins在安裝目錄下,于是打開源碼希望有所發現,里面確實實現了幾種Skin風格,然而它是一個完整的exe,在想想我剛生成的第一個skin是否也是一個exe??于是打開Setting,發現link->output file name:F:\Program Files\Common Files\BCGsoft\Skins\TESTSKIN.dll(我的OS是F:),哦,確實是一個dll,那我怎么改造成exe呢??
思維再次堵住,索性到那個目錄下看看,哦,發現好多Skin啊,放這里做什么??想了一下,是不是BCG有一種機制可以Custom界面成為這些風格?。??于是再次生成一個exe,這一次一步一步細心走向導,終于發現最后一步有一項:Use Skin Manager,勾上,選擇缺省目錄應該就是剛到的那個目錄了吧。
運行,選擇Customize,找一下,發現了一個按鈕Visualization,按一下,oh yeah,就是了,原來是皮膚插件管理機制,通過那幾個函數實現的。
至此研究過程基本結束,大概化1.5小時。又思考了下那些函數到底如何導出,開始還以為是BCG那個頭文件里面預定義導出的,于是搜索了一下BCGCBProGetSkinClass?,發現root.def,這個是向導模版里面的文件,打開發現在這里導出的。
EXPORTS
????BCGCBProGetSkinClass????????@
1
????BCGCBProGetSkinCount????????@
2
????BCGCBProGetSkinName????????????@
3
????BCGCBProGetSkinVersion????????@
4
????BCGCBProPreviewSkin????????????@
5
????BCGCBProGetSkinAuthor????????@
6
????BCGCBProGetSkinAuthorMail????@
7
????BCGCBProGetSkinAuthorURL????@
8
????BCGCBProGetSkinUpdate????????@
9
????BCGCBProIsUNICODE????????????@
10
開心,覺得有一種成就感!
posted on 2006-08-25 00:25
萬連文
閱讀(2076)
評論(0)
編輯
收藏
引用
所屬分類:
MFC
只有注冊用戶
登錄
后才能發表評論。
相關文章:
VC8中MFC集成ATL組件注冊時注意的一個問題
未來界面應該是這樣的
純技術討論com控件創建過程
界面終于出來一點拉
自己畫的好友列表
用WLWUI庫描述kugoo界面
上班半個月的總結
用MFC實現WebGUI--(CDHtmlDialog)
閑暇時間做的幾個界面
轉孫輝老師《十年MFC經歷認識的Microsoft技術》
網站導航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
簡歷下載
聯系我
<
2025年11月
>
日
一
二
三
四
五
六
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
常用鏈接
我的隨筆
我的評論
我參與的隨筆
留言簿
(66)
給我留言
查看公開留言
查看私人留言
隨筆分類
.NET(6)
ACDK(6)
ATL(11)
MFC(29)
richedit(9)
WTL(1)
亂七八糟(61)
模板(8)
小作品(40)
隨筆檔案
2013年3月 (2)
2012年9月 (2)
2012年8月 (2)
2012年7月 (2)
2012年6月 (3)
2012年5月 (2)
2011年9月 (2)
2011年8月 (1)
2011年6月 (2)
2011年5月 (4)
2011年4月 (2)
2011年3月 (2)
2010年12月 (1)
2009年9月 (1)
2009年8月 (2)
2009年7月 (2)
2009年6月 (2)
2009年5月 (1)
2009年4月 (1)
2009年1月 (1)
2008年12月 (5)
2008年11月 (2)
2008年10月 (1)
2008年9月 (7)
2008年8月 (2)
2008年3月 (3)
2008年2月 (2)
2008年1月 (3)
2007年12月 (6)
2007年11月 (1)
2007年10月 (3)
2007年9月 (1)
2007年8月 (5)
2007年7月 (5)
2007年6月 (3)
2007年5月 (5)
2007年4月 (5)
2007年3月 (4)
2007年2月 (2)
2007年1月 (2)
2006年12月 (4)
2006年11月 (8)
2006年10月 (1)
2006年9月 (9)
2006年8月 (7)
2006年7月 (10)
2006年6月 (1)
2006年5月 (2)
2006年4月 (10)
2006年3月 (3)
2006年2月 (3)
2006年1月 (2)
2005年12月 (8)
相冊
new
個人相冊
搜索
最新評論
1.?re: 用MFC實現WebGUI--(CDHtmlDialog)
前輩好,代碼下載之后怎么用?。课疑傻膃xe打開是空白的頁面,菜單新建不知道建的啥,打開一個html頁面也沒有反應,我的環境是vs2010
--王同林
2.?re: 使MFC變漂亮一:MFC與Flash交互示例
能不能把Flash源文件共享一下,要不然Flash端變量不知道怎么操作
--ddd
3.?re: 甘特圖第一版本發布
你這個附件有什么功能限制?
--xrczld
4.?re: 并行編程--MPI開發入門
我是用的vs+MPICH2,用wmpiexec運行我的exe的時候,不能連接到主機是什么鬼啊。。求回復
--M琨M
5.?re: 基于Chrome開源提取的界面開發框架 三(.3)
豌豆莢非常不錯的應用
--mmocake
閱讀排行榜
1.?基于Chrome開源提取的界面開發框架開篇(32472)
2.?用MFC實現WebGUI--(CDHtmlDialog)(26074)
3.?并行編程--MPI開發入門(19240)
4.?使MFC變漂亮二:MFC與HTML交互示例(17614)
5.?FreeType2研究(16157)
評論排行榜
1.?我把初戀搞丟了(原創)(55)
2.?一個小型繪圖程序(45)
3.?并行編程--MPI開發入門(42)
4.?我得C++學習心得(41)
5.?用MFC實現WebGUI--(CDHtmlDialog)(40)
Copyright ©2025 萬連文 Powered By
博客園
模板提供:
滬江博客
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
久久免费99精品久久久久久
|
久久久久久电影
|
性高湖久久久久久久久
|
激情小说另类小说亚洲欧美
|
欧美午夜精品伦理
|
国产精品毛片大码女人
|
欧美阿v一级看视频
|
国产精品成人在线
|
在线免费观看视频一区
|
亚洲永久免费视频
|
狂野欧美激情性xxxx
|
99国产精品99久久久久久粉嫩
|
亚洲女ⅴideoshd黑人
|
欧美成人精品h版在线观看
|
国产欧美亚洲日本
|
亚洲免费电影在线观看
|
国产精品免费一区二区三区观看
|
欧美视频中文字幕在线
|
亚洲国产cao
|
欧美一区二区私人影院日本
|
欧美韩日一区二区三区
|
国产色综合久久
|
一区二区久久久久
|
欧美gay视频
|
亚洲欧美在线网
|
欧美日韩午夜在线视频
|
亚洲黄色av一区
|
久久久精品一区
|
中文一区二区
|
欧美福利视频一区
|
一区二区在线观看视频
|
一区二区三区视频观看
|
亚洲精品资源
|
久久精品视频在线免费观看
|
国产精品久久久免费
|
亚洲精品中文字幕在线
|
美女视频黄 久久
|
午夜精品久久久久久久
|
欧美日韩麻豆
|
日韩视频亚洲视频
|
你懂的国产精品
|
欧美中文字幕在线
|
一本一本久久a久久精品综合麻豆 一本一本久久a久久精品牛牛影视
|
亚洲一区二区三区欧美
|
久热这里只精品99re8久
|
亚洲欧美日韩在线综合
|
欧美一区二区免费观在线
|
欧美日韩在线观看一区二区
|
亚洲国产欧美在线人成
|
久久久久综合一区二区三区
|
亚洲一区二区三区高清不卡
|
欧美日韩国产精品专区
|
亚洲精选国产
|
一区二区日韩
|
99亚洲视频
|
欧美福利专区
|
亚洲最新在线
|
99精品视频一区
|
国产精品区一区二区三
|
久久精品青青大伊人av
|
久久夜色精品国产欧美乱
|
亚洲激情偷拍
|
99国产精品国产精品毛片
|
一区二区三区视频在线播放
|
免费成人黄色片
|
一区二区三区视频观看
|
亚洲欧美www
|
在线观看欧美激情
|
亚洲精品免费网站
|
国产精品久久久久久久一区探花
|
亚洲精品在线二区
|
在线亚洲免费视频
|
国产亚洲一区二区精品
|
欧美激情精品久久久六区热门
|
欧美裸体一区二区三区
|
性欧美video另类hd性玩具
|
久久精品人人做人人综合
|
亚洲精品美女免费
|
亚洲欧美999
|
欧美色区777第一页
|
欧美在线观看视频一区二区三区
|
亚洲欧美成人综合
|
亚洲高清一区二区三区
|
一区二区三区日韩精品
|
韩日在线一区
|
99国产精品视频免费观看
|
亚洲国产精品v
|
欧美精品一区二区三区在线播放
|
午夜精品福利一区二区三区av
|
亚洲第一页自拍
|
亚洲三级影院
|
国产一区二区三区奇米久涩
|
亚洲日本激情
|
国内伊人久久久久久网站视频
|
亚洲精品日本
|
今天的高清视频免费播放成人
|
亚洲另类春色国产
|
黄网动漫久久久
|
一区二区三区精品在线
|
亚洲国产精品ⅴa在线观看
|
亚洲一区国产精品
|
亚洲精品日韩在线观看
|
午夜欧美精品
|
在线一区二区三区四区
|
久久综合九色综合网站
|
小处雏高清一区二区三区
|
亚洲精品资源
|
久久国产主播精品
|
亚洲综合精品自拍
|
欧美一区二区私人影院日本
|
欧美激情按摩在线
|
久热精品视频在线免费观看
|
国产精品免费看久久久香蕉
|
亚洲国产免费
|
一区在线播放
|
午夜精品一区二区三区在线播放
|
一区二区三区www
|
久久综合久久久
|
久久高清国产
|
欧美特黄一区
|
欧美日韩亚洲国产一区
|
欧美国产日韩视频
|
黄色资源网久久资源365
|
亚洲欧美国产高清va在线播
|
国产精品99久久99久久久二8
|
久久一二三国产
|
久久午夜羞羞影院免费观看
|
国产精品视频久久
|
一本大道av伊人久久综合
|
亚洲美洲欧洲综合国产一区
|
久久久蜜臀国产一区二区
|
久久成人免费电影
|
国产精品红桃
|
一本到高清视频免费精品
|
日韩一级成人av
|
欧美大片在线看
|
欧美福利视频在线观看
|
影音先锋日韩有码
|
久久精品国产精品
|
久久精品国产免费看久久精品
|
国产精品久久久久久久久免费樱桃
|
亚洲精品无人区
|
一本色道久久综合亚洲精品按摩
|
国产精品v欧美精品v日韩精品
|
亚洲欧洲综合
|
亚洲乱码国产乱码精品精天堂
|
国产一区二区主播在线
|
亚洲一区三区视频在线观看
|
亚洲综合第一
|
国产精品青草久久
|
亚洲国产精品久久久久婷婷884
|
亚洲一区二区三区四区在线观看
|
久久激情五月婷婷
|
久久精品国产久精国产思思
|
国产欧美日韩亚洲
|
午夜一区不卡
|
久久久久久自在自线
|
国产自产在线视频一区
|
久久精品水蜜桃av综合天堂
|
卡通动漫国产精品
|
亚洲国产免费看
|
免费在线观看成人av
|
亚洲高清免费在线
|
99re热这里只有精品免费视频
|
欧美日韩成人
|
中日韩高清电影网
|
欧美在线视屏
|
伊人春色精品
|
欧美.日韩.国产.一区.二区
|
亚洲欧洲日本专区
|
夜夜嗨av一区二区三区中文字幕
|
欧美日韩亚洲高清
|
亚洲欧美国产毛片在线
|
久久久人成影片一区二区三区
|
影音欧美亚洲
|
欧美精品一区三区
|
中文亚洲视频在线
|
久久蜜桃精品
|
亚洲精品无人区
|
国产精品国产三级国产
|
欧美一区二粉嫩精品国产一线天
|
久久久久久久久久久久久女国产乱
|
在线色欧美三级视频
|
欧美a级理论片
|
中文国产成人精品
|
久久久水蜜桃
|
亚洲精品在线观
|
国产精品剧情在线亚洲
|
久久大逼视频
|
亚洲欧洲精品一区二区三区波多野1战4
|
亚洲一区在线观看视频
|
国产在线精品成人一区二区三区
|
欧美与欧洲交xxxx免费观看
|
欧美午夜精品一区
|
久久精品免视看
|
亚洲精品美女免费
|
欧美资源在线
|
在线成人性视频
|
欧美丝袜一区二区三区
|
久久国产视频网站
|