VS2010-MFC(常用控制項:圖片控制項Picture Control)

來源:互聯網
上載者:User

標籤:res   color   資料   自動產生   www   屬性   表徵圖   idc   http   

 

轉自:http://www.jizhuomi.com/software/193.html

 

本節主要講一種簡單實用的控制項,圖片控制項Picture Control。我們可以在介面某個位置放入圖片控制項,顯示圖片以美化介面。

 

       圖片控制項簡介

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

 

       圖片控制項靜態和動態載入圖片

       下面為大家示範如何為圖片控制項靜態和動態載入位元影像圖片。

 

       1. 圖片控制項靜態載入圖片

       1)建立一個基於對話方塊的MFC工程,名稱設定為“Example27”。

       2)準備一張Bitmap圖片,名稱設為“test.bmp”,放到工程的res檔案夾中,res檔案夾路徑為...\Example27\Example27\res。這裡用一張全黑圖片。

       3)在Resource View中的“Example27.rc*”節點上點右鍵,選擇“Add Resource...”,彈出“Add Resource”對話方塊:

 

 

       然後在左側的“Resource Type”中選擇“Bitmap”,點按鈕“Import”,顯示一個檔案對話方塊,我們選擇res檔案夾中的test.bmp圖片檔案,匯入成功後會在Resource View的Example27.rc*節點下出現一個新的子節點“Bitmap”,而在“Bitmap”節點下可以看到剛添加的位元影像資源IDB_BITMAP1,這裡的預設ID就不修改了。

 

       4.)在自動產生的對話方塊模板IDD_EXAMPLE27_DIALOG中,刪除“TODO: Place dialog controls here.”靜態文本控制項、“OK”按鈕和“Cancel”按鈕。添加一個Picture Control控制項,在圖片控制項的屬性頁面中有一個Type屬性,Type屬性下拉式清單中有8種類型,下面分別介紹下:

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

       Etched Horz:顯示一條橫分割線

       Etched Vert:顯示一條豎分割線

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

       Icon:顯示一個表徵圖(Icon),表徵圖通過Image 下拉式清單來設定表徵圖資源ID

       Bitmap:顯示一個位元影像(Bitmap),位元影像通過Image 下拉式清單來設定位元影像資源ID

       Enhanced Metafile:顯示一個加強的中繼資料檔案(Metafile)

       Owner Draw:自繪

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

 

       5)在圖片控制項的Image屬性的下拉式清單中選擇3)中匯入的位元影像IDB_BITMAP1。

       6)編譯運行程式,彈出結果對話方塊,如所示:

 

 

 

        2. 圖片控制項動態載入圖片

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

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

        2)修改圖片控制項的ID為IDC_JIZHUOMI_STATIC,然後為其添加CStatic類型控制項變數m_jzmPicture。(若不修改ID則無法為其添加控制項變數

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

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

C++代碼
void CExample27Dlg::OnBnClickedLoadPicButton()   {       // TODO: Add your control notification handler code here       CBitmap bitmap;  // CBitmap對象,用於載入位元影像       HBITMAP hBmp;    // 儲存CBitmap載入的位元影像的控制代碼         bitmap.LoadBitmap(IDB_BITMAP1);  // 將位元影像IDB_BITMAP1載入到bitmap       hBmp = (HBITMAP)bitmap.GetSafeHandle();  // 擷取bitmap載入位元影像的控制代碼       m_jzmPicture.SetBitmap(hBmp);    // 設定圖片控制項m_jzmPicture的位元影像圖片為IDB_BITMAP1   }  

 

 

        5)編譯運行程式,彈出結果對話方塊,點擊按鈕“載入圖片”,結果如下:

 

 

       圖片控制項Picture Control的內容就講到這裡了。應該說還是比較簡單的。

 

VS2010-MFC(常用控制項:圖片控制項Picture Control)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.