一.建立專案檔案-新建專案-MFC應用程式-該頁面使用“基於對話方塊”-完成即可。
注意:取消“使用Unicode庫”,否則在使用AfxMessageBox會報錯,沒有一個可以轉換的引數型別,要加AfxMessageBox(_T(“..”))。執行結果:
二.新增背景Bitmap資源在“資源檢視”中右鍵滑鼠Dialog處,選擇“新增資源”。
注意:在新增的圖片中最好使用的是24位的BMP格式圖片,圖片應該放入res資料夾中。
三.編寫程式碼找到XXXDlg.cpp資料夾下的void CXXXDlg::OnPaint()函式,在else中進行修改。1.首先註釋掉CDialog::OnPaint()函式CDialog是個對話方塊類,OnPaint()是成員函式,是對視窗進行重畫,註釋掉該語句否則會呼叫該語句不斷重畫,而不會執行下面新增的程式碼。註釋掉該語句後最小化對話方塊後發現控制元件不可見,不過移動滑鼠後又能看見。2.新增程式碼else {//註釋該語句:防止重複呼叫重畫函式//CDialog::OnPaint(); //新增程式碼對話方塊背景貼圖CPaintDC dc(this); CRect rect; GetClientRect(&rect); //獲取對話方塊長寬 CDC dcBmp; //定義並建立一個記憶體裝置環境dcBmp.CreateCompatibleDC(&dc); //建立相容性DCCBitmap bmpBackground; bmpBackground.LoadBitmap(IDB_BITMAP1); //載入資源中圖片BITMAP m_bitmap; //圖片變數 bmpBackground.GetBitmap(&m_bitmap); //將圖片載入點陣圖中//將點陣圖選入臨時記憶體裝置環境CBitmap *pbmpOld=dcBmp.SelectObject(&bmpBackground);//呼叫函式顯示圖片StretchBlt顯示形狀可變dc.StretchBlt(0,0,rect.Width(),rect.Height(),&dcBmp,0,0,m_bitmap.bmWidth,m_bitmap.bmHeight,SRCCOPY); }
四.執行結果執行結果如下圖所示:
一.建立專案檔案-新建專案-MFC應用程式-該頁面使用“基於對話方塊”-完成即可。
注意:取消“使用Unicode庫”,否則在使用AfxMessageBox會報錯,沒有一個可以轉換的引數型別,要加AfxMessageBox(_T(“..”))。執行結果:
二.新增背景Bitmap資源在“資源檢視”中右鍵滑鼠Dialog處,選擇“新增資源”。
注意:在新增的圖片中最好使用的是24位的BMP格式圖片,圖片應該放入res資料夾中。
三.編寫程式碼找到XXXDlg.cpp資料夾下的void CXXXDlg::OnPaint()函式,在else中進行修改。1.首先註釋掉CDialog::OnPaint()函式CDialog是個對話方塊類,OnPaint()是成員函式,是對視窗進行重畫,註釋掉該語句否則會呼叫該語句不斷重畫,而不會執行下面新增的程式碼。註釋掉該語句後最小化對話方塊後發現控制元件不可見,不過移動滑鼠後又能看見。2.新增程式碼else {//註釋該語句:防止重複呼叫重畫函式//CDialog::OnPaint(); //新增程式碼對話方塊背景貼圖CPaintDC dc(this); CRect rect; GetClientRect(&rect); //獲取對話方塊長寬 CDC dcBmp; //定義並建立一個記憶體裝置環境dcBmp.CreateCompatibleDC(&dc); //建立相容性DCCBitmap bmpBackground; bmpBackground.LoadBitmap(IDB_BITMAP1); //載入資源中圖片BITMAP m_bitmap; //圖片變數 bmpBackground.GetBitmap(&m_bitmap); //將圖片載入點陣圖中//將點陣圖選入臨時記憶體裝置環境CBitmap *pbmpOld=dcBmp.SelectObject(&bmpBackground);//呼叫函式顯示圖片StretchBlt顯示形狀可變dc.StretchBlt(0,0,rect.Width(),rect.Height(),&dcBmp,0,0,m_bitmap.bmWidth,m_bitmap.bmHeight,SRCCOPY); }
四.執行結果執行結果如下圖所示: