无符号整形 发表于 2016-11-17 19:16:10

【MFC入门文字教程】13-图片控件(Picture Control)

本帖最后由 无符号整形 于 2016-11-18 18:36 编辑

其实,MFC是可以显示图片滴哟~
只不过,如果要显示的话,需要设置以下图片控件的属性然后添加一个图片(bmp格式)~
添加什么图片呢?就用鱼C的logo吧。
PS:bmp木有办法上传~就传一个png的吧,自己把他弄成bmp即可……

1.把bmp拷到工程目录/工程名下面。
2.在“资源文件”->添加->资源,选择Bitmap->导入,最后打开刚才的logo即可(gif:)

3.拖一个图片控件,然后设置Type属性为Bitmap即可。
静态加载
超级简单的~
把属性Image设置成刚才导入的图片的资源ID即可~(图片太大了,可以把对话框弄大些)

一运行就出来了(很美吧~)

动态加载
有的朋友可能会想要动态加载,这也不是难事。
注:其实刚刚我们添加的位图就是位图资源
记得把Image属性清空!
基本代码模板(鸡啄米)
CBitmap Bitmap;
HBITMAP hBitmap;
Bitmap.LoadBitmap(位图资源ID);
hBitmap = (HBITMAP)Bitmap.GetSafeHandle();
控件成员变量.SetBitmap(hBitmap);

但是,Picture Control是Static控件,怎么添加成员变量呢?
修改ID即可,比如我把id修改为ID_STATIC1,就可以了添加了。
添加变量的名称建议为m_PictureCtrl1
所以我们试试。
1.删除Picture Control的Image属性,添加一个按钮,修改他的Caption为“加载图片”,然后添加事件处理程序
2.给Picture Control修改ID为ID_STATIC1,添加一个变量,名字为m_PictureCtrl1。
3.在添加事件处理程序中添加如下内容:
CBitmap Bitmap;
        HBITMAP hBitmap;

        Bitmap.LoadBitmap(IDB_BITMAP1);
        hBitmap = (HBITMAP)Bitmap.GetSafeHandle();
        m_PictureCtrl1.SetBitmap(hBitmap);

4.然后……编译运行……效果:

怎么样?鸡冻吧~
附(转自鸡啄米):
Type属性下拉列表中有8种类型,下面分别介绍下:
Frame:显示一个无填充的矩形框,边框颜色可以通过Color属性的下拉列表设定
Etched Horz:显示一条横分割线
Etched Vert:显示一条竖分割线
Rectangle:显示一个填充的矩形框,矩形颜色可通过Color属性的下拉列表设定
Icon:显示一个图标(Icon),图标通过Image 下拉列表来设置图标资源ID
Bitmap:显示一个位图(Bitmap),位图通过Image 下拉列表来设置位图资源ID
Enhanced Metafile:显示一个加强的元数据文件(Metafile)
Owner Draw:自绘

颜小旭 发表于 2020-12-8 21:17:39

想问下MFC在鼠标按下时光标处显示图片 并随鼠标移动 松开鼠标时 图片消失也就是做一个图片移动的效果
页: [1]
查看完整版本: 【MFC入门文字教程】13-图片控件(Picture Control)