日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MFC VS2012对话框背景填图

發(fā)布時間:2024/5/28 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MFC VS2012对话框背景填图 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

這是使用VS 2012編寫MFC對話框程序的教程,主要是關(guān)于圖片處理方面的操作,這些在MFC游戲、圖片處理、軟件編寫中是經(jīng)常要用到的知識。

一.創(chuàng)建項目
文件-新建項目-MFC應(yīng)用程序-該頁面使用“基于對話框”-完成即可。

注意:取消“使用Unicode庫”,否則在使用AfxMessageBox會報錯,沒有一個可以轉(zhuǎn)換的參數(shù)類型,要加AfxMessageBox(_T(“..”))。
運(yùn)行結(jié)果:

二.添加背景Bitmap資源
在“資源視圖”中右鍵鼠標(biāo)Dialog處,選擇“添加資源”。

在“添加資源”對話框中選擇Bitmap,點(diǎn)擊“導(dǎo)入”,選擇工程文件res文件夾中的背景圖片,它會添加一張IDB_BITMAP1的圖片。

注意:在添加的圖片中最好使用的是24位的BMP格式圖片,圖片應(yīng)該放入res文件夾中。

三.編寫代碼
找到XXXDlg.cpp文件夾下的void CXXXDlg::OnPaint()函數(shù),在else中進(jìn)行修改。
1.首先注釋掉CDialog::OnPaint()函數(shù)
CDialog是個對話框類,OnPaint()是成員函數(shù),是對窗口進(jìn)行重畫,注釋掉該語句否則會調(diào)用該語句不斷重畫,而不會執(zhí)行下面添加的代碼。注釋掉該語句后最小化對話框后發(fā)現(xiàn)控件不可見,不過移動鼠標(biāo)后又能看見。
2.添加代碼
else {
//注釋該語句:防止重復(fù)調(diào)用重畫函數(shù)
//CDialog::OnPaint();?
//添加代碼對話框背景貼圖
CPaintDC?? dc(this);??
CRect?? rect;??
GetClientRect(&rect);??? //獲取對話框長寬??????
CDC?? dcBmp;???????????? //定義并創(chuàng)建一個內(nèi)存設(shè)備環(huán)境
dcBmp.CreateCompatibleDC(&dc);???????????? //創(chuàng)建兼容性DC
CBitmap?? bmpBackground;???
bmpBackground.LoadBitmap(IDB_BITMAP1);????//載入資源中圖片
BITMAP?? m_bitmap;???????????????????????? //圖片變量???????????????
bmpBackground.GetBitmap(&m_bitmap);???????//將圖片載入位圖中
//將位圖選入臨時內(nèi)存設(shè)備環(huán)境
CBitmap??*pbmpOld=dcBmp.SelectObject(&bmpBackground);
//調(diào)用函數(shù)顯示圖片StretchBlt顯示形狀可變
dc.StretchBlt(0,0,rect.Width(),rect.Height(),&dcBmp,0,0,m_bitmap.bmWidth,m_bitmap.bmHeight,SRCCOPY);????
}

四.運(yùn)行結(jié)果
運(yùn)行結(jié)果如下圖所示:

由于我是剛學(xué)習(xí)VS2012編寫MFC程序,在處理顯示圖片中遇到了很多問題,也參考了很多很多CSDN大神的博客,希望這篇博客能幫助大家。~~初學(xué)者學(xué)習(xí),高手忽略。
其中主要感謝y30369的CSDN一篇使用VC++ MFC的博客,詳細(xì)網(wǎng)址如下:
?http://blog.csdn.net/y30369/article/details/6467468
我很大程度上只是轉(zhuǎn)載了它的內(nèi)容,自己在通過VS2012實(shí)現(xiàn)該功能的。(Eastmount 2013-5-31-夜12點(diǎn))

總結(jié)

以上是生活随笔為你收集整理的MFC VS2012对话框背景填图的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。