MFC 擴充套件庫 CJ60Lib

2021-09-23 01:24:24 字數 4937 閱讀 4464

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

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

在你的工程設定(project/setting)中,選擇general標籤,確保microsoft 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,然後新增../includeadditional include directories中。 最後的乙個步驟將新增如下兩行到stdafx.h檔案中,這將輸入外部類並且在你的整個應用程式中都能使用它們:

#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

在 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 類繼承而來的。

ccj*******- ( cj*******.cpp和cj*******.h )

我寫的這個函式是對 c******* 類的擴充套件。這個類給工具條新增了把手,設定工具條使用的字型,畫了類似於 visual studio 和 office 產品的 3d邊界。此外我還新增了可以把控制項新增在工具條上的方法(例如組合框和編輯框)。要使用這個類,只要簡單地將 c******* 改為 ccj******* 即可。

ccoolmenumanager-( coolmenu.cpp, emboss.cpp 和 coolmenu.h )

csubclasswnd-( subclass.cpp 和 subclass.h )

由 paul dilascia 寫出。請翻閱 1998 年 1 月的 msj 主題。它可能是我所見得實現「酷」選單的最簡單的方法(包含圖示的下拉列表)。 我作了一些小的增強以便解決記憶體洩漏的問題。這些類已經被整合到xframewnd擴充套件中了。為了能使用「酷」選單,只需要將如下**加入到你的cmainframe::oncreate方法中即可:

cflat*******- ( flatbar.cpp and flatbar.h )在vc 6.0中已陳舊了

cmoduleversion- ( modulver.cpp and modulver.h )

這是我的 ccj******* 的基類。這個類是 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 。這將允許該函式被直接呼叫而不用經過乙個靜態物件。

本軟體不提供任何明白的或是暗示的擔保,你必須承擔使用它的全部風險。

作者不承擔任何由於使用本產品所遭受到的資料破壞和丟失的責任。

感謝 :

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

cristi posea -

對於寫出了如此酷的

csizingcontrolbar 類。

joerg koenig -

對於某些從他的

c*******ex

類中來的主意,我利用來做出了

3d 邊界和在工具條中使用控制項。

shekar narayanan -

對於他的酷選單,從中我獲得了寫出 

ccjoutlookbar

控制項的靈感。

dirk clemens -

對於他的可伸縮的

tabcontrolbar

類,我的

ccjtabctrlbar

就基於此。

paul dilascia -

對於他在

msj的所有傑出的工作,並且他使我們得到了他的源**。

chris maunder -

對於使用了他的

chyperlink

控制項。zafir anjum -

對於建設這樣乙個優秀的** 

(www.codeguru.com)

,而且使得所有那些酷的

mfc資源為我們所用。

MFC介面擴充套件庫

bcgcontrolbar專業版是mfc的乙個擴充套件庫,您可以用來構建類似於microsoft office microsoft visual studio和其他一些知名產品的高階使用者介面。這個擴充套件庫包含了150多個經過精心設計,測試和具有完備文件的mfc擴充套件類。我們的控制項能夠輕鬆的融...

DLL專題之MFC規則庫和擴充套件庫

說實話,編寫mfc規則庫和擴充套件庫和編寫其他庫沒有什麼區別.其實都一樣.只不過,mfc規則庫和擴充套件庫對支援mfc的特性更好,你在寫mfc規則庫和擴充套件庫的時候基本上可以和你寫mfc應用程式一樣.那我們就隨便寫寫吧.首先建立乙個mfc擴充套件的庫吧.在這裡我們匯出乙個函式呼叫前面的mfc靜態苦...

MFC擴充套件DLL 小結

1 在dll中啟動多執行緒,用 beginthread 不能使用afxbeginthread 2 dll中與客戶程式之間通訊可以有2中方法 1 通過訊息,在dll中增加乙個自定義訊息,此訊息的id注意不能和客戶端程式中的訊息重複。在客戶端程式中將視窗控制代碼傳給dll,在客戶端寫上此訊息的響應函式,...