1. 程式人生 > >MFC入門(三)-- MFC圖片/文字控制元件(迴圈顯示文字和圖片的小程式)

MFC入門(三)-- MFC圖片/文字控制元件(迴圈顯示文字和圖片的小程式)

慣例附上前幾個部落格的連結:

MFC入門(一)簡單配置:http://blog.csdn.net/zmdsjtu/article/details/52311107

MFC入門(二)讀取輸入字元:http://blog.csdn.net/zmdsjtu/article/details/52315088

 

 

/////////////////////////////////////////////////正文///////////////////////////////////////////////////

 

首先新建一個MFC專案,習慣性選擇靜態庫

 

 

右擊MFC_Picture.rc選擇新增資源,把需要新增顯示的BMP圖片檔案新增到資源,本文為了滾動顯示兩張圖片,所以只用了兩張BMP,當然你也可以三張四張無數張,在待會提及的程式碼部分進行修改即可。

 

會預設生成兩個BITMAP,名字就用的預設的BITMAP1和BITMAP2,在程式碼部分可以對應看下。

 

 

 

選擇Bitmap匯入,在對應目錄下選擇所有檔案,選擇兩張bmp檔案匯入即可。

 

 

現在我們就有了兩張可以用的Bitmap了。

 

 

接著我們搭建介面如下:

 

圖裡沒見過的那個小仙人掌的圖示就是我們今天要用的圖片Bitmap控制元件,選擇左側工具欄裡的Picture Control拖動到右側,再在屬性裡把Type改成本文要用的Bitmap,並講名字重新命名為IDC_show(因為預設的是Static在新增顯示圖片變數時會出問題,所以這裡必須要改!!)

 

繼而右擊小仙人掌新增變數m_show用以一會兒動態顯示圖片~

//圖裡的m_show是黑的是因為之前已經添加了,不必在意,打上去就好

 

 

 

然後就是關鍵性的程式碼階段了,雙擊下一張的按鈕空降到指定程式碼位置,複製程式碼如下:

 

 

int i = 0;  //變數i用來切換圖片以及文字

void CMFC_PictureDlg::OnBnClickedOk()

{

 

CString txt_show;

CBitmap bitmap;  // CBitmap物件,用於載入點陣圖   

HBITMAP hBmp;    // 儲存CBitmap載入的點陣圖的控制代碼   

if (i == 0) {

bitmap.LoadBitmap(IDB_BITMAP1);  // 將點陣圖IDB_BITMAP1載入到bitmap   

txt_show.Format(_T("你瞅啥?")); SetDlgItemText(IDC_EDIT1, txt_show);

}

if (i == 1) {

bitmap.LoadBitmap(IDB_BITMAP2);

txt_show.Format(_T("再瞅試試?")); SetDlgItemText(IDC_EDIT1, txt_show);

}

 

 

i++;

if (i == 2) i = 0;

hBmp = (HBITMAP)bitmap.GetSafeHandle();  // 獲取bitmap載入點陣圖的控制代碼   

m_show.SetBitmap(hBmp);    // 設定圖片控制元件m_jzmPicture的點陣圖圖片為IDB_BITMAP1   

}

 

 

下面闡述下最為關鍵的兩個模組:

第一個是顯示BMP檔案的部分:

 

bitmap.LoadBitmap(IDB_BITMAP1); 將圖片載入之後

hBmp = (HBITMAP)bitmap.GetSafeHandle();  獲取bitmap載入點陣圖的控制代碼   

m_show.SetBitmap(hBmp);   最後顯示圖片到之前新建的圖片控制元件的變數上

 

第二塊是文字顯示的模組:

 

新建CString txt_show;

 

txt_show.Format(_T("你瞅啥?")); 給txt_show賦值

SetDlgItemText(IDC_EDIT1, txt_show);顯示在ID為IDC_EDIT1的文字控制元件上

 

 

最後是結果展示~~~  //並不精神汙染

 

 

 

 

 

最後祝大家程式設計愉快~~
---------------------
作者:朱銘德
來源:CSDN
原文:https://blog.csdn.net/zmdsjtu/article/details/52326208
版權宣告:本文為博主原創文章,轉載請附上博文連結!