MFC中图片控件(PictrueControl)的加载方式有两种:静态加载、动态加载
下面分别演示一下图片控件的2种加载方式具体过程
静态加载
1.新建一个MFC对话框工程,名称自定义即可。
2. 准备一张Bitmap(bmp)图片,没有的话可以用其他格式的图片通过格式工厂转换。
3. 视图切换到资源视图,在工程目录上右击,选择插入:
将会弹出如下一个对话框:
选中Bitmap后点击引入,选中一张bmp格式的图片,将其导入,此时图片为标准的话图片将会出项在一个位图编辑器中,可以进行编辑,但有时也会出现无法显示编辑器的情况,原因为图片超过了256色,但不影响图片的使用,只是无法在VC里编辑而已:
4.图片导入后,ID为IDB_BITMAP1,在主对话框中添加一个图片控件PictrueControl,右击控件,属性中类型选择位图,否则无法显示;图像 选择刚才导入图片的ID: IDB_BITMAP1。
5.bitmap图片的静态加载到此完成,Ctrl+F5运行程序,即可正常显示位图:
动态加载
1.首先把bmp图片添加到工程目录res中,还是一样把图片引入到Bitmap目录中,自动ID为:IDB_BITMAP2,
2.主对话框中添加一个图片控件PictrueControl,右击控件,属性中类型选择位图,此时图片控件如图所示:
3.添加一个按钮,为其添加一个点击事件,事件具体代码如下:
//动态加载位图
void CLoadImageDlg::OnBtnLoad()
{
CBitmap bitmap; // CBitmap对象,用于加载位图
HBITMAP hbmp; // 保存CBitmap加载的位图句柄
bitmap.LoadBitmap(IDB_BITMAP2); //位图加载
hbmp = (HBITMAP)bitmap.GetSafeHandle();// 获取bitmap位图句柄
m_Picture.SetBitmap(hbmp);//设置图片控件要显示的位图:IDB_BITMAP2
}
最后,Ctrl+F5运行程序,点击按钮,即可正常加载位图:
重要提醒:图片控件必须选择位图模式,否则无法显示。