MFC編程入門之二十七(常用控件:圖片控件PictureControl)


  上一節講的是滾動條控件,本節主要講一種簡單實用的控件,圖片控件Picture Control。我們可以在界面某個位置放入圖片控件,顯示圖片以美化界面。

  圖片控件簡介

  圖片控件和前面講到的靜態文本框都是靜態文本控件,因此兩者的使用方法有很多相同之處,所屬類都是CStatic類,有關成員函數已在前面介紹,這里就不重復了。

  圖片控件靜態和動態加載圖片

  下面為大家演示如何為圖片控件靜態和動態加載位圖圖片。

  1、圖片控件靜態加載圖片

  (1)創建一個基於對話框的MFC工程,名稱設置為"MFCPictureControlDemo"。

  (2)准備一張Bitmap圖片,名稱設為“view.bmp”,放到工程的res文件夾中,res文件夾路徑...\MFCPictureControlDemo\MFCPictureControlDemo\res。

  (3)在Resource View中的"MFCPictureControlDemo.rc*"節點上點右鍵,選擇“Add Resource...”,彈出"Add Resource"對話框:

  然后在左側的"Resource Type"中選擇“Bitmap”,點按鈕“Import”,顯示一個文件對話框,我們選擇res文件夾中的view.bmp圖片文件,導入成功后會在Resource View的MFCPictureControlDemo.rc*節點下出現一個新的子節點"Bitmap",而在“Bitmap”節點下可以看到剛添加的位圖資源IDB_BITMAP1,這里的默認ID就不修改了。

  (4)在自動生成的對話框模板IDD_MFCPICTURECONTROLDEMO_DIALOG中,刪除“TODO:Place dialog controls here.”靜態文本控件、“確定”按鈕和“取消”按鈕。添加一個Picture Control控件,在圖片控件的屬性頁中有一個Type屬性,Type屬性下拉列表中有8中類型,下面分別介紹下:

  Frame:顯示一個無填充的矩形框,邊框顏色可以通過Color屬性的下拉列表設定

  Etched Horz:顯示一條橫分割線

  Etched Vert:顯示一條豎分割線

  Rectangle:顯示一個填充的矩形框,矩形顏色可通過Color屬性的下拉列表設定

  Icon:顯示一個圖標(Icon),圖標通過Image下拉列表來設置圖標資源ID

  Bitmap:顯示一個位圖(Bitmap),位圖通過Iamge下拉列表來設置位圖資源ID

  Enhanced Metafile:顯示一個加強的元數據文件(Metafile)

  Owner Draw:自繪

  因為我們要加載的是位圖圖片,所以Type屬性選擇Bitmap。

   (5)在圖片控件的Image屬性的下拉列表中選擇(3)中導入的位圖IDB_BITMAP1。

  (6)編譯運行程序,彈出結果對話框,如下圖所示:

 

  2、圖片控件動態加載圖片

  以上講的是靜態加載圖片的方法,下面接着講動態加載圖片的方法。程序依然沿用上面的工程。步驟如下:

  (1)將上面添加的圖片控件的Image屬性IDB_BITMAP1清空,Type屬性不變。

  (2)修改圖片控件的ID為IDC_PIC_STATIC,然后為其添加CStatic類型空間變量m_pictureControl。(若不修改ID則無法為其添加控件變量)

  (3)在對話框下方添加一按鈕控件,Caption屬性改為“加載圖片”,ID設為IDC_LOAD_PIC_BUTTON。

  (4)為按鈕IDC_LOAD_PIC_BUTTON添加點擊消息的處理函數CMFCPictureControlDemo::OnBnClickedLoadPicButton(),然后修改此函數的函數實現如下:

C++代碼:

void CMFCPictureControlDemoDlg::OnBnClickedLoadPicButton()
{
	// TODO: 在此添加控件通知處理程序代碼
	CBitmap bitmap;	// CBitmap對象,用於加載位圖
	HBITMAP hBmp;	// 保存CBitmap加載的位圖的句柄

	bitmap.LoadBitmapW(IDB_BITMAP1);	// 將位圖IDB_BITMAP1加載到bitmap
	hBmp = (HBITMAP)bitmap.GetSafeHandle();	// 獲取bitmap加載位圖的句柄
	m_pictureControl.SetBitmap(hBmp);	// 設置圖片空間m_pictureControl的位圖為IDB_BITMAP1
}

  (5)編譯運行程序,彈出結果對話框,點擊按鈕“加載圖片”,結果如下:

  圖片控件Picture Control的內容就講到這里了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM