如何修改vc工程的對(duì)話框類名

如何修改vc工程的對(duì)話框類名

ID:15784816

大小:41.95 KB

頁數(shù):3頁

時(shí)間:2018-08-05

如何修改vc工程的對(duì)話框類名_第1頁
如何修改vc工程的對(duì)話框類名_第2頁
如何修改vc工程的對(duì)話框類名_第3頁
資源描述:

《如何修改vc工程的對(duì)話框類名》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、Cheny2012-02-18目的:Windows操作系統(tǒng)中有一個(gè)概念——窗口類。窗口類是抽象的,它可以有很多窗口實(shí)例,即HWND/CWnd。在一個(gè)程序中,你可以定制并注冊(cè)一個(gè)窗口類,然后用它創(chuàng)建窗口,也可以直接用已經(jīng)注冊(cè)的窗口類創(chuàng)建我們的窗口。為了減輕我們的編程負(fù)擔(dān),也為了隱藏具體的實(shí)現(xiàn),MFC已經(jīng)為我們定制并注冊(cè)了很多窗口類,我們可以直接使用它們。比如:對(duì)話框的窗口類為”#32770”,按鈕的窗口類為”Button”,列表框的窗口類為”ListBox”等等。很多時(shí)候,我們需要用到FindWindow函數(shù)來查找已經(jīng)存在的窗口,然后給它發(fā)送消息?;蛘?/p>

2、查詢系統(tǒng)是否已經(jīng)存在指定的窗口(進(jìn)程),如果存在,我們就不再創(chuàng)建程序的新進(jìn)程,而僅僅是激活它。FindWindow函數(shù)的聲明為:HWNDFindWindow(LPCTSTRlpClassName,//類名LPCTSTRlpWindowName//窗口名);我們可以通過窗口類名(lpClassName)查找,也可以通過窗口標(biāo)題文本(lpWindowName)查找,或者同時(shí)使用。窗口的標(biāo)題文本并不總是十分可靠,很多時(shí)候,它是動(dòng)態(tài)變化的。所以通過窗口類名來查找就很有必要了。方法:那么怎樣把MFC提供給我們的對(duì)話框的默認(rèn)窗口類名“#32770“改成我們程序特

3、有的呢?以下是更改步驟:1.打開工程的資源視圖2.更改對(duì)話框資源的ClassName屬性。有兩種方法:a.第一種方法:在需要更改類名的對(duì)話框資源上右擊,選擇“屬性”,打開屬性對(duì)話框,可以看到有一個(gè)名為“ClassName”的屬性,我們?cè)谄渲休斎胍粋€(gè)自己定義的名稱(如”MyPrivateClassName”)即可。但是,MFC默認(rèn)設(shè)置這個(gè)屬性選項(xiàng)是灰色不可用的,我們先要開啟它。切換到資源視圖,右擊根節(jié)點(diǎn)(如”XxxXxx.rc”),選屬性,去掉勾選“EnableMFCFeatures”項(xiàng)(如果是VS.Net,把”MFCModeproperty”項(xiàng)改為F

4、alse)。這樣就可以修改對(duì)話框的ClassName屬性了,假如為"MyClassName"。然后在BOOLCXXXXApp::InitInstance()方法的”WNDCLASSwc;”下方加上如下代碼:3Cheny2012-02-18//////////////////////注冊(cè)新類名/////////////////////////////獲取窗口類信息。MFC默認(rèn)的所有對(duì)話框的窗口類名為#32770::GetClassInfo(AfxGetInstanceHandle(),_T("#32770"),&wc);//改變窗口類名wc.lpszC

5、lassName=_T("MyClassName");//注冊(cè)新窗口類,使程序能使用它AfxRegisterClass(&wc);///////////////////////////////////////////////////////////這段代碼必須加上并且需要注冊(cè),要不然程序啟動(dòng)不了。b.另一種方法是:直接用文本編輯器打開資源文件,修改對(duì)話框定義代碼,插入CLASS項(xiàng),如:IDD_LIMITDLGINSTANCE_DIALOGDIALOGEX0,0,195,44STYLEDS_MODALFRAME

6、WS_POPUP

7、WS_VISIBLE

8、

9、WS_CAPTION

10、WS_SYSMENUEXSTYLEWS_EX_APPWINDOWCAPTION"LimitDlgInstance"CLASS"MyPrivateClassName"http://Addyourclassnamehere!FONT8,"MSSansSerif"BEGINDEFPUSHBUTTON"OK",IDOK,138,7,50,14PUSHBUTTON"Cancel",IDCANCEL,138,23,50,14PUSHBUTTON"&Test!",IDC_BUTTON1,48,14,49,15END3.定制并注冊(cè)新窗口類。在應(yīng)用程序類的

11、InitInstance()函數(shù)中添加以下代碼,以注冊(cè)資源文件中用到的新窗口類:3Cheny2012-02-18WNDCLASSwc;//獲取窗口類信息。MFC默認(rèn)的所有對(duì)話框的窗口類名為#32770::GetClassInfo(AfxGetInstanceHandle(),_T("#32770"),&wc);//改變窗口類名wc.lpszClassName=_T("MyPrivateClassName");//注冊(cè)新窗口類,使程序能使用它AfxRegisterClass(&wc);注意:在調(diào)用函數(shù)::GetClassInfo()時(shí),請(qǐng)確保傳入的第一

12、個(gè)參數(shù)HINSTANCE是包含你對(duì)話框資源所在的dll或exe的進(jìn)程實(shí)例。請(qǐng)確保資源中指定的ClassNam

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。