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
版權宣告:本文為博主原創文章,轉載請附上博文連結!