MFC的picture控件 靜態加載與動態加載


靜態加載

001:新建對話框工程,加入picture控件,修改屬性 把picture控件中的type設置為bitmap類型 , 關聯變量為m_Bmp(類型為control),

002:雙擊按鈕,在消息處理函數中添加

HBITMAP hBitmap; 
hBitmap = ::LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BITMAP1)); 
m_Bmp.SetBitmap(hBitmap);                 /***IDB_BITMAP1是你載入資源中位圖的ID號***/

動態加載

動態載入就是不用事先把位圖導入資源,直接在程序運行的時候,彈出一個文件選擇對話框,選擇你想要顯示的對話框即可。此列中依舊要把picture控件中的type設置為bitmap類型,否則會出現圖片顯示不出來的問題。

和以上靜態顯示唯一的區別只體現在按鈕的消息處理函數中,此列中的消息處理函數內容為

CString m_strfile; /***你在文件選擇對話框中選中的文件名***/ 
CRect r; 
GetClientRect(&r); 
    CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, 
   "Bmp files(*.bmp)|*.bmp|",NULL); 
    if(dlg.DoModal ()) 

   m_strfile=dlg.GetPathName (); 

HBITMAP hbitmap=(HBITMAP)LoadImage(AfxGetInstanceHandle(), 
           m_strfile, 
           IMAGE_BITMAP, 
           r.Width()/2, 
           r.Height()/2, 
           LR_LOADFROMFILE);    
m_Bmp.SetBitmap(hbitmap);

總結:圖片的顯示處理可以使用CxImage庫。

CxImage類庫是一個優秀的圖像操作類庫。它可以快捷地存取、顯示、轉換各種圖像。功能強大齊全。


免責聲明!

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



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