weidagang2046的專欄

          物格而后知致
          隨筆 - 8, 文章 - 409, 評(píng)論 - 101, 引用 - 0
          數(shù)據(jù)加載中……

          改變視圖單調(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

          主站蜘蛛池模板: 利川市| 武汉市| 兴义市| 古浪县| 舒兰市| 谢通门县| 唐河县| 平利县| 大同县| 夏河县| 麦盖提县| 义马市| 江川县| 绥滨县| 遂川县| 通山县| 黄冈市| 蕉岭县| 同德县| 离岛区| 昌都县| 九龙城区| 梁山县| 南通市| 乌拉特后旗| 东兴市| 甘孜县| 鹤壁市| 阿巴嘎旗| 隆尧县| 梅州市| 澳门| 农安县| 琼中| 渝北区| 方山县| 普定县| 宽甸| 视频| 金溪县| 道孚县|