添加背景圖片_第1頁(yè)
已閱讀1頁(yè),還剩3頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、vc如何給窗體添加背景圖片如何給窗體添加背景圖片VC是一個(gè)功能強(qiáng)大的可視化的開(kāi)發(fā)工具,但是用VC做的標(biāo)準(zhǔn)界面與Windows一樣色彩灰暗單調(diào),例如多文檔窗口應(yīng)用程序中的主框架窗口的背景便是如此。那么能否給主框架窗口的背景改變一下色彩或是給主框架窗口加上一幅漂亮的圖片做背景?其實(shí)也不難。但與單文檔窗口應(yīng)用程序中改變框架窗口的背景方法不同,對(duì)多文檔窗口應(yīng)用程序中的主框架窗口改變背景不能簡(jiǎn)單地用ClassWizard重載OnEraseBkgn

2、d(CDC*pDC)函數(shù)的方法實(shí)現(xiàn)。因?yàn)槎辔臋n窗口應(yīng)用程序中的主框架窗口的背景區(qū)是一個(gè)MDIClient類(lèi)的窗口,因此改變背景與這個(gè)MDIClient類(lèi)的窗口有關(guān)。MDIClient類(lèi)的窗口的句柄是m_hWndMDIClient(在CMDIFrameWnd中)。以下是其實(shí)現(xiàn)的步驟:一、使用MFCAppWizard向?qū)?chuàng)建一個(gè)多文檔窗口應(yīng)用程序1、在VC的“File”菜單中單擊[New],彈出一“New”對(duì)話框。在“Projects”頁(yè)中

3、選擇“MFCAppWizard[exe]”,在“Projectname”編輯框中輸入“DrawBackground”,按[OK]按鈕,退出“New”對(duì)話框。2、在“MFCAppWizardstep1”對(duì)話框到“MFCAppWizardstep6”對(duì)話框中選擇默認(rèn)選項(xiàng),按[Finish]按鈕即完成多文檔窗口應(yīng)用程序的定制。注:MFC(MicrosoftFoundationClass)是MS-VisualC++的類(lèi)庫(kù)。二、向應(yīng)用程序添加位圖

4、在VC的“View”菜單中單擊“ResourceIncludes...”在彈出對(duì)話框中選擇“Bitmap”,按[Impt]按鈕從文件中加載位圖文件,單擊“Wkspace”的“Resource”便可見(jiàn)到剛才加載的位圖文件,默認(rèn)的資源標(biāo)識(shí)符為IDB_BITMAP1。三、用ClassWiard生成一個(gè)CWnd類(lèi)的派生類(lèi)CclientWnd在CclientWnd類(lèi)中重載OnEraseBkgnd(CDC*pDC),OnSize(UINTnType

5、intcxintcy)函數(shù),并用手工加入重載的虛函數(shù)WNDPROC*CClientWnd::GetSuperWndProcAddr()用來(lái)返回函數(shù)指針。類(lèi)CclientWnd的頭文件代碼如下:classCClientWnd:publicCWndConstructionpublic:CClient()Attributespublic:Operationspublic:CDCdcMen內(nèi)存設(shè)備描述表CBitmapbmbk位圖對(duì)象bmbk.L

6、oadBitmap(IDB_BITMAP1)從資源加載位圖bitmap得到位圖bitmap的大小BITMAPstBitmapbmbk.GetObject(sizeof(BITMAP)&stBitmap)CSizebmsize(stBitmap.bmWidthstBitmap.bmHeight)dcMen.CreateCompatibleDC(pDC)創(chuàng)建兼容的設(shè)備描述表選入新的位圖對(duì)象并保存舊的位圖對(duì)象CBitmap*pold=dcMe

7、n.Object(&bmbk)GetClientRect(&rectbk)取得客戶(hù)區(qū)的大小從內(nèi)存向屏幕復(fù)制位圖對(duì)象pDC-StretchBlt(rectbk.leftrectbk.toprectbk.Width()rectbk.Height()&dcMen00bmsize.cxbmsize.cySRCCOPY)dcMen.Object(pold)恢復(fù)舊的位圖對(duì)象dcMen.DC()釋放內(nèi)存設(shè)備描述表returntrueWNDPROC*C

8、ClientWnd::GetSuperWndProcAddr()staticWNDPROCNEARpfnSuper=NULLreturn&pfnSuper返回函數(shù)指針voidCClientWnd::OnSize(UINTnTypeintcxintcy)CWnd::OnSize(nTypecxcy)TODO:Addyourmessagehlercodeherefile:重畫(huà)窗口Invalidate()四、修改CMainFrame類(lèi)在CMa

9、inFrame類(lèi)中定義一個(gè)CClientWnd類(lèi)的成員變量m_wndClient,并在CMainFrame::OnCreate(LPCREATESTRUCTlpCreateStruct)函數(shù)中把m_wndClient子類(lèi)化為主框架窗口的客戶(hù)窗口。代碼如下:在MainFrm.h中加入:#include“ClientWnd1.h“classCMainFrame:publicCMDIFrameWndprivate:CClientWndm_wn

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論