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