MFC 擴(kuò)展庫 - CJ60Lib
原來的庫(MFCXLib)已經(jīng)更名為CJ60Lib,這是為了與那些使用舊庫的程序區(qū)別開來。本庫與舊的庫具有同樣的功能,但是,針對(duì)Visual C++ 6.0作了幾個(gè)擴(kuò)展。
請(qǐng)按照下面的步驟來設(shè)定你的應(yīng)用程序使用CJ60Lib這個(gè)MFC擴(kuò)展庫:
在你的工程設(shè)定(project/setting)中,選擇 General 標(biāo)簽,確保 Microsoft Foundation Class 被設(shè)置成 Use MFC in a shared DLL。
例如為 ../Lib/MyDemo.exe。
#include <CJ60Lib.h>
如果要靜態(tài)鏈接到CJ60Lib,請(qǐng)作如下改變:
在你的工程設(shè)定中,選擇
General
標(biāo)簽。確保
Microsoft Foundation Class
被設(shè)置為
Use MFC in a static library
。
#define MFCX_PROJ
#include <CJ60Lib.h>
這個(gè)庫是為版本為 4.71 或其后的 comctl32.dll 而寫的。如果你是老版本的,你可以從微軟的站點(diǎn)上下載最新版本。
在 CJ60Lib 中的類 :
CCJButton - ( CJButton.cpp 和 CJButton.h )
我寫這個(gè)類最初是為了處理在 CCJControlBar 類中的最小化和關(guān)閉按鈕。這個(gè)類能夠處理扁平按鈕。我在此基礎(chǔ)上作了擴(kuò)展,創(chuàng)建了一個(gè)實(shí)現(xiàn)靜態(tài)按鈕控件的條目,就跟在 VisualStudio 的 Project Settings->Custom Build 標(biāo)簽中看到的一樣。
CCJComboBox - ( CJComboBox.cpp 和 CJComboBox.h )
我寫這個(gè)類是為了處理扁平外觀的組合框,就象在微軟的 Office 系列產(chǎn)品中看到的一樣。它很容易使用,只要將所有有 CComboBox 的地方替換為 CCJComboBox 即可。關(guān)于使用該類的詳細(xì)說明,參見這里。
CCJControlBar - ( CJControlBar.cpp 和 CJControlBar.h )
這個(gè)類是基于 CristiPosea 寫的 CSizingControlBar 類基礎(chǔ)之上的。 我添加了更多的外觀給這個(gè)控件,包括最小和最大化按鈕、把手、按鈕浮動(dòng)提示、彈出菜單支持和垂直及水平 sizebar 指針。關(guān)于如何使用這個(gè)類,參見這里。
CCJFrameWnd - ( CJFrameWnd.cpp 和 CJFrameWnd.h )
CCJMDIFrameWnd - ( CJMDIFrameWnd.cpp 和 CJMDIFrameWnd.h )
CCJDockBar - ( CJDockBar.cpp 和CJDockBar.h )
這些類覆蓋了主框架窗口原來的布局,從而允許對(duì)工具條的三維外觀進(jìn)行偏移。要使用這些類,僅僅需要在 Mainfrm.h 文件中在 CMainFrame 的繼承時(shí)將基類由 CFrameWnd 改為 CCJFrameWnd (對(duì)于多文檔界面,使用 CCJMDIFrameWnd )。
CCJOutlookBar - ( CJOutlookBar.cpp 和 CJOutlookBar.h )
自 VC5 的最后版本以來,這個(gè)類被修改了許多。我已經(jīng)添加了鼠標(biāo)事件的處理,并且修改它使用 CCJPagerCtrl 而取代使用缺省的列表框滾動(dòng)條。
CCJPagerCtrl - ( CJPagerCtrl.cpp 和 CJPagerCtrl.h )
這個(gè)類包含了 pager 公用控件。要使用它只需在你的視或?qū)υ捒蛑袆?chuàng)建它,然后用你想要將其分頁那個(gè)控件的的 HWND 來指定它的子窗口。當(dāng)創(chuàng)建一個(gè)子窗口時(shí),設(shè)置 pager 為它的父窗口。關(guān)于如何使用這個(gè)類,參見這里。
CCJTabCtrlBar - ( CJTabCtrlBar.cpp 和 CJTabCtrlBar.h )
這個(gè)類基于 Dirk Clemens 的關(guān)于 Sizing TabControlBar 的論述。 我對(duì)其代碼作了一些擴(kuò)展,以便適應(yīng)我對(duì) CCJControlBar 類所作的修改,因?yàn)楸绢愂菑?/font> CCJControlBar 類繼承而來的。
CCJToolBar - ( CJToolBar.cpp和CJToolBar.h )
我寫的這個(gè)函數(shù)是對(duì) CToolBar 類的擴(kuò)展。這個(gè)類給工具條添加了把手,設(shè)置工具條使用的字體,畫了類似于 Visual Studio 和 Office 產(chǎn)品的 3D 邊界。此外我還添加了可以把控件添加在工具條上的方法(例如組合框和編輯框)。要使用這個(gè)類,只要簡(jiǎn)單地將 CToolBar 改為 CCJToolBar 即可。
CCoolMenuManager -( CoolMenu.cpp, Emboss.cpp 和 CoolMenu.h )
CSubclassWnd -( Subclass.cpp 和 Subclass.h )
由 Paul DiLascia 寫出。請(qǐng)翻閱 1998 年 1 月的 MSJ 主題。它可能是我所見得實(shí)現(xiàn)“酷”菜單的最簡(jiǎn)單的方法(包含圖標(biāo)的下拉菜單)。 我作了一些小的增強(qiáng)以便解決內(nèi)存泄漏的問題。這些類已經(jīng)被集成到 XFrameWnd 擴(kuò)展中了。為了能使用“酷”菜單,只需要將如下代碼加入到你的 CMainFrame::OnCreate 方法中即可:
CFlatToolBar - ( FlatBar.cpp and FlatBar.h ) 在VC 6.0中已陳舊了
CModuleVersion - ( ModulVer.cpp and ModulVer.h )
這是我的 CCJToolBar 的基類。這個(gè)類是 Paul DiLascia 寫的 , 能處理絕大多數(shù)扁平工具條的伸縮和內(nèi)部問題。 CModuleVersion 被用來檢查當(dāng)前的公用控件 dll 的版本。
CCoolBar, CRebarInfo - ( CoolBar.cpp 和 CoolBar.h ) 在VC 6.0中已陳舊了
這些代碼最初是由 Paul DiLascia 寫的。我對(duì)于原始代碼作了一些增強(qiáng),這些類被用來創(chuàng)建可重定位的工具條。
CHyperLink - ( HyperLink.cpp 和 HyperLink.h )
這個(gè)類是由 Chris Maunder 寫的,基于它的關(guān)于 Hyperlink 控件的文章。我使用這個(gè)類來在“關(guān)于”對(duì)話框中添加超級(jí)鏈接。我作了一個(gè)小的修改,那就是將 "GotoURL" 函數(shù)從 protected 型變?yōu)?/font> public 。這將允許該函數(shù)被直接調(diào)用而不用經(jīng)過一個(gè)靜態(tài)對(duì)象。
這些代碼可以用任何你想要的方法進(jìn)行編譯。只要不是未經(jīng)作者允許而出售,并且保證本聲明和作者的名字以及所有的拷貝權(quán)力完好無缺,本文件可以在不修改的情況下用任何手段散發(fā)(我沒有修改,只是翻譯-站長(zhǎng))。如果本文件中的代碼被用于任何商業(yè)程序,那么在該程序的起始標(biāo)志和關(guān)于對(duì)話框以及印刷文檔中上必須聲明一行"Portions Copyright ? 1998 Kirk Stowell"。任何通知我你正在使用它的電子郵件將使我很高興。考慮到在寫作這些代碼時(shí)所作的大量工作,這些要求不算很過分。本軟件不提供任何明白的或是暗示的擔(dān)保,你必須承擔(dān)使用它的全部風(fēng)險(xiǎn)。 作者不承擔(dān)任何由于使用本產(chǎn)品所遭受到的數(shù)據(jù)破壞和丟失的責(zé)任。 |
感謝 :
沒有下面這些人的努力,本代碼不可能成為免費(fèi)的:
對(duì)于寫出了如此酷的
CSizingControlBar
類。
posted on 2006-06-22 17:47 楊粼波 閱讀(531) 評(píng)論(0) 編輯 收藏 引用 所屬分類: 文章收藏