MFC 擴充套件庫 - CJ60Lib ( 針對Visual C++ 6.0進行的升級 ) (轉)

worldblog發表於2007-12-02
MFC 擴充套件庫 - CJ60Lib ( 針對Visual C++ 6.0進行的升級 ) (轉)[@more@]

原來的庫(MFCXLib)已經更名為CJ60Lib,這是為了與那些使用舊庫的區別開來。本庫與舊的庫具有同樣的功能,但是,針對Visual C++ 6.0作了幾個擴充套件。

請按照下面的步驟來設定你的應用程式使用CJ60Lib這個MFC擴充套件庫:

  • 在你的工程設定(project/setting)中,選擇 General 標籤,確保 Foundation Class 被設定成 Use MFC in a shared DLL
  • 在你的工程設定(project/setting)中,選擇 Link 標籤。.設定 CategoryInput,並且將 ../Lib 新增在 Additional Library Path中。
  • 仍然在 Link 標籤中,改變  CategoryGeneral。針對 Output Name (所有的設定),編譯到 ../Lib 目錄。這將使得和變得容易一些,因為 DLLEXE 都處在同一個目錄中。
    例如為 ../Lib/MyDemo.exe
  • 選擇 C/C++標籤。 改變 CategoryPreprocessor,然後新增 ../Include Additional Include Directories中。
  • 最後的一個步驟將新增如下兩行到 StdAfx.h 中,這將輸入外部類並且在你的整個應用程式中都能使用它們:

    source code --&gt#define MFCX_PROJ
    #include

如果要靜態連結到CJ60Lib,請作如下改變:

  • 在你的工程設定中,選擇General標籤。確保 Microsoft Foundation Class 被設定為 Use MFC in a static library
  • 在你的StdAfx.h 檔案中新增下面幾行程式碼,這將導致庫靜態連結到你的應用程式(確保在include語句之前新增):

    #define MFCXLIB_STATIC
    #define MFCX_PROJ
    #include

這個庫是為版本為4.71或其後的comctl32.dll而寫的。如果你是老版本的,你可以從的站點上最新版本。

在CJ60Lib中的類:

CCJButton - ( CJButton.cpp 和 CJButton.h )

我寫這個類最初是為了處理在CCJControlBar類中的最小化和關閉按鈕。這個類能夠處理扁平按鈕。我在此基礎上作了擴充套件,建立了一個實現靜態按鈕的條目,就跟在VisualStudio的Project Settings->Custom Build標籤中看到的一樣。

CCJComboBox - ( CJComboBox.cpp 和 CJComboBox.h )

我寫這個類是為了處理扁平外觀的組合框,就象在微軟的系列產品中看到的一樣。它很容易使用,只要將所有有CComboBox的地方替換為CCJComboBox即可。關於使用該類的詳細說明,參見/flat_combobox.htm">這裡。

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)。

CCJBar - ( 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類的擴充套件。這個類給工具條新增了把手,設定工具條使用的字型,畫了類似於 和 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 ) 在6.0中已陳舊了
CModuleVersion - ( ModulVer.cpp and ModulVer.h )

這是我的CCJToolBar的基類。這個類是 Paul DiLascia寫的, 能處理絕大多數扁平工具條的伸縮和內部問題。CModuleVersion 被用來檢查當前的公用控制元件dll的版本。

CCoolBar, CRebarInfo - ( CoolBar.cpp 和 CoolBar.h ) 在VC 6.0中已陳舊了

這些程式碼最初是由Paul DiLascia寫的。我對於原始程式碼作了一些增強,這些類被用來建立可重定位的工具條。

CHyink - ( HyperLink.cpp 和 HyperLink.h )

這個類是由Chris Maunder寫的,基於它的關於 Hyperlink 控制元件的文章。我使用這個類來在“關於”對話方塊中新增超級連結。我作了一個小的修改,那就是將 "GotoURL" 函式從 protected型變為public。這將允許該函式被直接而不用經過一個靜態。

這些程式碼可以用任何你想要的方法進行編譯。只要不是未經作者允許而出售,並且保證本宣告和作者的名字以及所有的複製權力完好無缺,本檔案可以在不修改的情況下用任何手段散發(我沒有修改,只是翻譯-站長)。如果本檔案中的程式碼被用於任何商業程式,那麼在該程式的起始標誌和關於對話方塊以及印刷文件中上必須宣告一行"Portions Copyright ? 1998 Kirk Stowell"。任何通知我你正在使用它的電子將使我很高興。考慮到在寫作這些程式碼時所作的大量工作,這些要求不算很過分。

本不提供任何明白的或是暗示的擔保,你必須承擔使用它的全部風險。
作者不承擔任何由於使用本產品所遭受到的資料破壞和丟失的責任。

感謝:

沒有下面這些人的努力,本程式碼不可能成為免費的:

  • to:cristi@gds.ro">Cristi Posea - 對於寫出瞭如此酷的CSizingControlBar類。
  • - 對於某些從他的CToolBarEx類中來的主意,我利用來做出了3D邊界和在工具條中使用控制元件。
  • .com">Shekar Narayanan -對於他的酷選單,從中我獲得了寫出 CCJOutlookBar控制元件的靈感。
  • - 對於他的可伸縮的TabControlBar類,我的CCJTabCtrlBar就基於此。
  • - 對於他在MSJ的所有傑出的工作,並且他使我們得到了他的。
  • - 對於使用了他的CHyperLink控制元件。
  • - 對於建設這樣一個優秀的網站 (),而且使得所有那些酷的MFC資源為我們所用。
  • 還用感謝你們讓我無法停息直到我為VC6升級了這個庫。我感謝所有這些建議和電子郵件。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-987494/,如需轉載,請註明出處,否則將追究法律責任。

相關文章