我們在用Visual C++寫程序時,會看到她自動產生的界面背景非常的單調,我們可以自己來改變這個問題來實現美麗的背景,希望本文對初學者有所幫助。
本文代碼運行效果圖如下
下面來跟我做:
1.首先准備好一張美麗的圖片,保存為BMP格式。
2.新建一個工程,命名為:test ,在資源編輯裡用Import導入剛才准備好的位圖文件.ID為IDB_BITMAP
如果位圖是大於16色的,會出現無法顯示的提示。不要緊,這並不影響程序最終的顯示。
3.代碼實現
3.1 我們為CTestView類添加一個變量 CBrush m_brushBackground;這個畫刷就是用於畫背景的。
3.2 我們在CTestView的構造函數中加入如下代碼:
CBitmap bmp;
bmp.LoadBitmap(IDB_BITMAP); ///加載位圖
m_brushBackground.CreatePatternBrush(&bmp); ///創建位圖畫刷
3.3 接著我們需要在OnDraw函數中畫出來,代碼如下:
CRect rect;
GetClientRect(rect);///取得客戶區域
pDC->FillRect(rect,&m_brushBackground); ///用背景畫刷填充區域
3.4 為了避免背景的閃爍,使顯示更加完美,我們添加WM_ERASEBKGND消息的處理函數,並取消調用父類的處理函數,代碼如下:
BOOL CTestView::OnEraseBkgnd(CDC* pDC)
{
return TRUE;
}
接下來,我們就編譯運行該程序了,效果不錯吧!
本文配套源碼