改變視圖單調(diào)的背景
我們?cè)谟肰isual C++寫程序時(shí),會(huì)看到她自動(dòng)產(chǎn)生的界面背景非常的單調(diào),我們可以自己來(lái)改變這個(gè)問(wèn)題來(lái)實(shí)現(xiàn)美麗的背景,希望本文對(duì)初學(xué)者有所幫助。
本文代碼運(yùn)行效果圖如下
下面來(lái)跟我做:
1.首先準(zhǔn)備好一張美麗的圖片,保存為BMP格式。
2.新建一個(gè)工程,命名為:test ,在資源編輯里用Import導(dǎo)入剛才準(zhǔn)備好的位圖文件.ID為IDB_BITMAP
如果位圖是大于16色的,會(huì)出現(xiàn)無(wú)法顯示的提示。不要緊,這并不影響程序最終的顯示。
3.代碼實(shí)現(xiàn)
3.1 我們?yōu)镃TestView類添加一個(gè)變量 CBrush m_brushBackground;這個(gè)畫刷就是用于畫背景的。
3.2 我們?cè)贑TestView的構(gòu)造函數(shù)中加入如下代碼:
CBitmap bmp; bmp.LoadBitmap(IDB_BITMAP); ///加載位圖 m_brushBackground.CreatePatternBrush(&bmp); ///創(chuàng)建位圖畫刷
3.3 接著我們需要在OnDraw函數(shù)中畫出來(lái),代碼如下:
CRect rect; GetClientRect(rect);///取得客戶區(qū)域 pDC->FillRect(rect,&m_brushBackground); ///用背景畫刷填充區(qū)域
3.4 為了避免背景的閃爍,使顯示更加完美,我們添加WM_ERASEBKGND消息的處理函數(shù),并取消調(diào)用父類的處理函數(shù),代碼如下:
BOOL CTestView::OnEraseBkgnd(CDC* pDC) { return TRUE; }
接下來(lái),我們就編譯運(yùn)行該程序了,效果不錯(cuò)吧!
from: http://www.vckbase.com/document/viewdoc/?id=341
posted on 2006-07-23 13:33 weidagang2046 閱讀(101) 評(píng)論(0) 編輯 收藏 所屬分類: Windows