原來的庫(MFCXLib)已經更名為CJ60Lib,這是為了與那些使用舊庫的程序區別開來。本庫與舊的庫具有同樣的功能,但是,針對Visual C++ 6.0作了幾個擴展。
請按照下面的步驟來設定你的應用程序使用CJ60Lib這個MFC擴展庫:
在你的工程設定(project/setting)中,選擇 General 標簽,確保 Microsoft Foundation Class 被設置成 Use MFC in a shared DLL。
在你的工程設定(project/setting)中,
選擇 Link 標簽。.設置 Category 為Input,并且將 ../Lib 添加在 Additional Library Path中。
仍然在 Link 標簽中,改變? Category 為 General。針對 Output Name (所有的設置),編譯到 ../Lib 目錄。這將使得執行和調試變得容易一些,因為 DLL和 EXE 都處在同一個目錄中。
例如為 ../Lib/MyDemo.exe。
選擇 C/C++標簽。 改變 Category 為 Preprocessor,然后添加 ../Include 到 Additional Include Directories中。
最后的一個步驟將添加如下兩行到 StdAfx.h 文件中,這將輸入外部類并且在你的整個應用程序中都能使用它們:
#define MFCX_PROJ
#include <CJ60Lib.h>
如果要靜態鏈接到CJ60Lib,請作如下改變:
在你的工程設定中,選擇
General
標簽。確保
Microsoft Foundation Class
被設置為
Use MFC in a static library
。
在你的
StdAfx.h
文件中添加下面幾行代碼,這將導致庫靜態鏈接到你的應用程序(確保在
include
語句之前添加):
#define MFCXLIB_STATIC
#define MFCX_PROJ
#include <CJ60Lib.h>
這個庫是為版本為
4.71
或其后的
comctl32.dll
而寫的。如果你是老版本的,你可以從微軟的站點上下載最新版本。
在
CJ60Lib
中的類
:
CCJButton - ( CJButton.cpp 和 CJButton.h )
我寫這個類最初是為了處理在
CCJControlBar
類中的最小化和關閉按鈕。這個類能夠處理扁平按鈕。我在此基礎上作了擴展,創建了一個實現靜態按鈕控件的條目,就跟在
VisualStudio
的
Project Settings->Custom Build
標簽中看到的一樣。
CCJComboBox - ( CJComboBox.cpp 和 CJComboBox.h )
我寫這個類是為了處理扁平外觀的組合框,就象在微軟的
Office
系列產品中看到的一樣。它很容易使用,只要將所有有
CComboBox
的地方替換為
CCJComboBox
即可。關于使用該類的詳細說明,參見這里。
CCJControlBar - ( CJControlBar.cpp 和 CJControlBar.h )
這個類是基于
CristiPosea
寫的
CSizingControlBar
類基礎之上的。 我添加了更多的外觀給這個控件,包括最小和最大化按鈕、把手、按鈕浮動提示、彈出菜單支持和垂直及水平
sizebar
指針。關于如何使用這個類,參見這里。
CCJFrameWnd - ( CJFrameWnd.cpp 和 CJFrameWnd.h )
CCJMDIFrameWnd - ( CJMDIFrameWnd.cpp 和 CJMDIFrameWnd.h )
CCJDockBar - ( CJDockBar.cpp 和CJDockBar.h )
這些類覆蓋了主框架窗口原來的布局,從而允許對工具條的三維外觀進行偏移。要使用這些類,僅僅需要在
Mainfrm.h
文件中在
CMainFrame
的繼承時將基類由
CFrameWnd
改為
CCJFrameWnd
(對于多文檔界面,使用
CCJMDIFrameWnd
)。
CCJOutlookBar - ( CJOutlookBar.cpp 和 CJOutlookBar.h )
自
VC5
的最后版本以來,這個類被修改了許多。我已經添加了鼠標事件的處理,并且修改它使用
CCJPagerCtrl
而取代使用缺省的列表框滾動條。
CCJPagerCtrl - ( CJPagerCtrl.cpp 和 CJPagerCtrl.h )
這個類包含了
pager
公用控件。要使用它只需在你的視或對話框中創建它,然后用你想要將其分頁那個控件的的
HWND
來指定它的子窗口。當創建一個子窗口時,設置
pager
為它的父窗口。關于如何使用這個類,參見這里。
CCJTabCtrlBar - ( CJTabCtrlBar.cpp 和 CJTabCtrlBar.h )
這個類基于
Dirk Clemens
的關于
Sizing TabControlBar
的論述。 我對其代碼作了一些擴展,以便適應我對
CCJControlBar
類所作的修改,因為本類是從
CCJControlBar
類繼承而來的。
CCJToolBar - ( CJToolBar.cpp和CJToolBar.h )
我寫的這個函數是對
CToolBar
類的擴展。這個類給工具條添加了把手,設置工具條使用的字體,畫了類似于
Visual Studio
和
Office
產品的
3D
邊界。此外我還添加了可以把控件添加在工具條上的方法(例如組合框和編輯框)。要使用這個類,只要簡單地將
CToolBar
改為
CCJToolBar
即可。
CCoolMenuManager -( CoolMenu.cpp, Emboss.cpp 和 CoolMenu.h )
CSubclassWnd -( Subclass.cpp 和 Subclass.h )
由
Paul DiLascia
寫出。請翻閱
1998
年
1
月的
MSJ
主題。它可能是我所見得實現“酷”菜單的最簡單的方法(包含圖標的下拉菜單)。 我作了一些小的增強以便解決內存泄漏的問題。這些類已經被集成到
XFrameWnd
擴展中了。為了能使用“酷”菜單,只需要將如下代碼加入到你的
CMainFrame::OnCreate
方法中即可:
CFlatToolBar - ( FlatBar.cpp and FlatBar.h ) 在VC 6.0中已陳舊了
CModuleVersion - ( ModulVer.cpp and ModulVer.h )
這是我的
CCJToolBar
的基類。這個類是
Paul DiLascia
寫的
,
能處理絕大多數扁平工具條的伸縮和內部問題。
CModuleVersion
被用來檢查當前的公用控件
dll
的版本。
CCoolBar, CRebarInfo - ( CoolBar.cpp 和 CoolBar.h ) 在VC 6.0中已陳舊了
這些代碼最初是由
Paul DiLascia
寫的。我對于原始代碼作了一些增強,這些類被用來創建可重定位的工具條。
CHyperLink - ( HyperLink.cpp 和 HyperLink.h )
這個類是由
Chris Maunder
寫的,基于它的關于
Hyperlink
控件的文章。我使用這個類來在“關于”對話框中添加超級鏈接。我作了一個小的修改,那就是將
"GotoURL"
函數從
protected
型變為
public
。這將允許該函數被直接調用而不用經過一個靜態對象。
這些代碼可以用任何你想要的方法進行編譯。只要不是未經作者允許而出售,并且保證本聲明和作者的名字以及所有的拷貝權力完好無缺,本文件可以在不修改的情況下用任何手段散發(我沒有修改,只是翻譯-站長)。如果本文件中的代碼被用于任何商業程序,那么在該程序的起始標志和關于對話框以及印刷文檔中上必須聲明一行"Portions Copyright ? 1998 Kirk Stowell"。任何通知我你正在使用它的電子郵件將使我很高興。考慮到在寫作這些代碼時所作的大量工作,這些要求不算很過分。本軟件不提供任何明白的或是暗示的擔保,你必須承擔使用它的全部風險。 作者不承擔任何由于使用本產品所遭受到的數據破壞和丟失的責任。 |
感謝
:
沒有下面這些人的努力,本代碼不可能成為免費的:
對于寫出了如此酷的
CSizingControlBar
類。
Joerg Koenig -
對于某些從他的
CToolBarEx
類中來的主意,我利用來做出了
3D
邊界和在工具條中使用控件。
Shekar Narayanan -
對于他的酷菜單,從中我獲得了寫出
CCJOutlookBar
控件的靈感。
Dirk Clemens -
對于他的可伸縮的
TabControlBar
類,我的
CCJTabCtrlBar
就基于此。
Paul DiLascia -
對于他在
MSJ
的所有杰出的工作,并且他使我們得到了他的源代碼。
Chris Maunder -
對于使用了他的
CHyperLink
控件。
Zafir Anjum -
對于建設這樣一個優秀的網站
(www.codeguru.com)
,而且使得所有那些酷的
MFC
資源為我們所用。
還用感謝你們讓我無法停息直到我為
VC6
升級了這個庫。我感謝所有這些建議和電子郵件。