For investors
股價(jià):
5.36 美元 %For investors
股價(jià):
5.36 美元 %認(rèn)真做教育 專心促就業(yè)
VC++(C++培訓(xùn) )++5.0是Microsoft新近推出的可視化C++集成開發(fā)環(huán)境。它在繼承以前VC++的基礎(chǔ)上增加了許多新的功能,用于支持Win32平臺(tái)應(yīng)用程序、服務(wù)程序和控件的開發(fā)。VC++5.0提供了強(qiáng)大、快捷的編程工具,其中最基本的是三個(gè)導(dǎo)航:AppWizard用于程序框架的生成,AppStudio用于資源的編輯,ClassWizard用于類的編輯和管理。其中,窗口、菜單等無需用戶編寫程序,而由系統(tǒng)自動(dòng)生成。但在許多情況下,用戶要設(shè)置自己希望的窗口(即定制窗口)。
一、如何在多文檔界面下去掉開始的子窗口
在多文檔界面下,自動(dòng)生成一個(gè)新的子窗口,而一個(gè)實(shí)際的應(yīng)用系統(tǒng)往往是由用戶操作后再生成新的窗口。為了去掉開始的子窗口,可在應(yīng)用程序文件分析命令行的語句:
CcommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);
后加入:
cmdInfo.m-nShellCommand=CcommandLineInfo::FileNothing;
去掉子窗口后,就只剩下主框架窗口了。因?yàn)樵诙辔臋n界面中,系統(tǒng)生成兩個(gè)菜單:一個(gè)是用戶的菜單,另一個(gè)是系統(tǒng)主框架菜單。通常用戶工作在用戶菜單。為了保證菜單界面不變,可修改主框架菜單資源,使其與用戶菜單保持一致。
二、修改窗口標(biāo)題欄
在缺省情況下,窗口標(biāo)題欄中顯示的文檔名為文件名。若要在標(biāo)題欄顯示一個(gè)長(zhǎng)字符串,而又不修改文件名,則可將項(xiàng)目工作區(qū)轉(zhuǎn)換到Resource
View面版,選擇串表(StringTable)資源,在StringTable中雙擊IDR-MAIN-FRAME項(xiàng),caption中顯示一字符串
xx\n\yy......,將第一個(gè)參數(shù)修改為用戶自己希望見到的主窗口標(biāo)題即可。
三、修改主框架窗口、子窗口及其顯示性質(zhì)
可通過覆蓋CWnd的成員函數(shù)PreCreateWindow來修改主窗口和子窗口.PreCreateWindow函數(shù)在即將創(chuàng)建窗口前被調(diào)用,函數(shù)原型為:Virtual
BOOL PreCreateWindow函數(shù)(CREATESTRUCT
cs)。如果要覆蓋PreCreateWindow函數(shù),則在創(chuàng)建窗口前可以修改CREATESTRUCT結(jié)構(gòu)以替換缺省參數(shù)。CREATESTRUCT結(jié)構(gòu)存放窗口特征,如窗口坐標(biāo)、風(fēng)格等,還可以定義新窗口風(fēng)格。若想修改主框架窗口,則可以在MainFrm.cpp的下列成員函數(shù)中加入待修改的內(nèi)容。例如:
BOOL CmainFrame::PreCreateWindow(CREATESTRUCT&cs)
r>
{
//通過修改CREATESTRUCT結(jié)構(gòu)來修改窗口類或風(fēng)格
//定義新窗口的高度、寬度
cs.cx=450;
cs.cy=300;
//定義新窗口風(fēng)格為去掉主窗口名及最大化等按鈕
cs.style=ws-POPWINDO;
return
CframeWnd::PreCreateWindow(cs);
}
定制子窗口的操作與上述主窗口相同,可在ChildFrm.cpp中加入以下內(nèi)容:
BOOL
CmainFrame::PreCreateWindow(CREATESTRUCT&cs)
{
//通過修改CREATESTRUCT結(jié)構(gòu)來修改窗口類或風(fēng)格
return
C mdichildWnd::PreCreateWindow(cs);
}
要修改視圖窗口的顯示性質(zhì),則可在視圖文件xxView.cpp的下述成員函數(shù)中加入以下語句:
BOOL xxView::PreCreateWindow(CREATESTRUCT&cs)
{
//增加的語句
cs.lpszClass=AfxRegisterWndClass(cs-HREDRAW|CS-VREDRAW,0,(HBRUSH))::GetStockObject(WHITE-BRUSH),0);
return CscrollView::PreCreateWindow(cs);
}
其中,cs的參數(shù)pszClass用于存放Windows窗口類名稱。要想注冊(cè)Windows窗口類,則必須調(diào)用全局函數(shù)AfxRegisterWndClass。該函數(shù)原型為:
LPCTSTR AFXAPI AfxRegisterWndClass(UINTnClassStyle,HCURSOR
hCursor=0,HBRUSH
hbrBackground=0,HICON hIcon=0)
上述各參數(shù)用于定義風(fēng)格,其含義分別為光標(biāo)資源句柄、背景資源句柄、圖標(biāo)資源句柄。上述增加的語句的作用是:改變窗口大小時(shí)重畫窗口、不顯示光標(biāo)圖標(biāo)、設(shè)置白色背景。
四、窗口的滾動(dòng)
使用CscrollView代替Cview類即可實(shí)現(xiàn)滾動(dòng)窗口。此時(shí),系統(tǒng)生成OnInitialUpdate()成員函數(shù):
void CmyscrollView::OnInitialUpdat()
{
CscrollView::OnIntialUpdate();
Csize sizeTotal;
SizeTotal.cs=sizeToal.cy=100;
SetScrollSizes(MM-TEXT,sizeTotal);
}
其中,cs和cy分別為滾動(dòng)窗口的水平、垂直分量,表明窗口的水平、垂直方向尺寸小于100像素單位時(shí)將出現(xiàn)水平方向滾動(dòng)條和垂直方向滾動(dòng)條。通過修改滾動(dòng)尺寸,可改變出現(xiàn)滾動(dòng)條的最小窗口。例如,若“sizeTotal.cx=600;sizeTotal.cy=800;”,則當(dāng)窗口尺寸小于600*800時(shí),就會(huì)出現(xiàn)滾動(dòng)條。
【免責(zé)聲明】本文部分系轉(zhuǎn)載,轉(zhuǎn)載目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé)。如涉及作品內(nèi)容、版權(quán)和其它問題,請(qǐng)?jiān)?0日內(nèi)與聯(lián)系我們,我們會(huì)予以更改或刪除相關(guān)文章,以保證您的權(quán)益!