資源描述:
《VC++ 5.0定制窗口的方法》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在行業(yè)資料-天天文庫。
1、VC++5.0定制窗口的方法 VC++5.0是Microsoft新近推出的可視化C++集成開發(fā)環(huán)境,它在繼承以前VC++的基礎上增加了許多新的功能,用于支持Win32平臺應用程序、服務程序和控件的開發(fā)。VC++5.0提供了強大、快捷的編程工具,其中最基本的是三個導航系統(tǒng):AppWizard用于程序框架的生成,AppStudio用于資源的編輯,ClassWizard用于類的編輯和管理。其中,窗口、菜單等無需用戶編寫程序,而由系統(tǒng)自動生成。但在許多情況下,用戶要設置自己希望的窗口(即定制窗口)。 一、如何在多文檔界面下去掉開始的子窗口 在多文檔界面下,自動生成一個新的子窗口,而一
2、個實際的應用系統(tǒng)往往是由用戶操作后再生成新的窗口。為了去掉開始的子窗口,可在應用程序文件分析命令行的語句 CCommandLineInfocmdInfo; ParseCommandLine(cmdInfo); 后加入: cmdInfo.m_nShellCommand=CCommandLineInfo::FileNothing; 去掉子窗口后,就只剩下主框架窗口了。因為在多文檔界面中,系統(tǒng)生成兩個菜單:一個是用戶的菜單,另一個是系統(tǒng)主框架菜單。通常用戶工作在用戶菜單。為了保證菜單界面不變,可修改主框架菜單資源,使其與用戶菜單保持一致。 二、修改窗口標題欄 在缺省情況下,
3、窗口標題欄中顯示的文檔名為文件名。若要在標題欄顯示一個長字符串,而不修改文件名,則可將項目工作區(qū)轉(zhuǎn)換到ResourceView面板,選擇串表(StringTable)資源,在StringTable中雙擊IDR_MAINFRAME項,caption中顯示一字符串xxyy......,將第一個參數(shù)修改為用戶自己希望見到的主窗口標題即可?! ∪⑿薷闹骺蚣艽翱?、子窗口及其顯示性質(zhì) 可通過覆蓋CWnd的成員函數(shù)PreCreateWindow來修改主窗口和子窗口。PreCreateWindow函數(shù)在即將創(chuàng)建窗口前被調(diào)用,函數(shù)原型為:VirtualBOOLPreCreateWindow
4、(CREATESTRUCTcs)。如果要覆蓋PreCreateWindow函數(shù),則在創(chuàng)建窗口前可以修改CREATESTRUCT結(jié)構(gòu)以替換缺省參數(shù)。CREATESTRUCT結(jié)構(gòu)存放窗口特征,如窗口坐標、風格等,還可以定義新窗口風格?! ∪粝胄薷闹骺蚣艽翱冢瑒t可在MainFrm.cpp的下列成員函數(shù)中加入待修改的內(nèi)容。例如: BOOLCMainFrame::PreCreateWindow(CREATESTRUCT&cs) { //通過修改CREATESTRUCT結(jié)構(gòu)來修改窗口類或風格 //定義新窗口的高度、寬度 cs.cx=450; cs.cy=300; //定義新窗口風
5、格為去掉主窗口名及最大化等按鈕 cs.style=WS_POPWINDO; returnCFrameWnd::PreCreateWindow(cs); } 定制子窗口的操作與上述主窗口相同,可在ChildFrm.cpp中加入以下內(nèi)容: BOOLCChildFrame::PreCreateWindow(CREATESTRUCT&cs) { //通過修改CREATESTRUCT結(jié)構(gòu)來修改窗口類或風格 returnCMDIChildWnd::PreCreateWindow(cs); } 要想修改視圖窗口的顯示性質(zhì),則可在視圖文件xxView.cpp的下述成員函數(shù)中加入
6、以下語句: BOOLxxView::PreCreateWindow(CREATESTRUCT&cs) { //增加的語句 cs.lpszClass=AfxRegisterWndClass(CS_HREDRAW
7、CS_VREDRAW, 0,(HBRUSH)::GetStockObject(WHITE_BRUSH),0); returnCScrollView::PreCreateWindow(cs); } 其中,cs的參數(shù)pszClass用于存放Windows窗口類名稱。要想注冊Windows窗口 類,則必須調(diào)用全局函數(shù)AfxRegisterWndClass。該函數(shù)原
8、型為: LPCTSTRAFXAPIAfxRegisterWndClass(UINTnClassStyle,HCURSORhCursor=0,HBRUSHhbrBackground=0,HICONhIcon=0) 上述各參數(shù)用于定義風格,其含義分別為光標資源句柄、背景資源句柄、圖標資源句柄。上述增加的語句的作用是:改變窗口大小時重畫窗口、不顯示光標圖標、設置白色背景?! ∷摹⒋翱诘臐L動 使用CScrollView代替CView類即可實現(xiàn)滾動窗口。此時,系統(tǒng)生成On