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类库是一个优秀的图像操作类库。它可以快捷地存取、显示、转换各种图像。功能强大齐全。

posted @ 2013-03-12 14:32  陈朋  阅读(3160)  评论(0编辑  收藏  举报