鱼C论坛

 找回密码
 立即注册
查看: 4192|回复: 1

[技术交流] 【MFC入门文字教程】13-图片控件(Picture Control)

[复制链接]
发表于 2016-11-17 19:16:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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

其实,MFC是可以显示图片滴哟~
只不过,如果要显示的话,需要设置以下图片控件的属性然后添加一个图片(bmp格式)~
添加什么图片呢?就用鱼C的logo吧。
PS:bmp木有办法上传~就传一个png的吧,自己把他弄成bmp即可……
FishC.png
1.把bmp拷到工程目录/工程名下面。
2.在“资源文件”->添加->资源,选择Bitmap->导入,最后打开刚才的logo即可(gif: jdfw.rar (1.85 MB, 下载次数: 32)
90.JPG
3.拖一个图片控件,然后设置Type属性为Bitmap即可。
静态加载
超级简单的~
把属性Image设置成刚才导入的图片的资源ID即可~(图片太大了,可以把对话框弄大些)
2016-11-18.png
一运行就出来了(很美吧~)
FishC-MFC.JPG
动态加载
有的朋友可能会想要动态加载,这也不是难事。
注:其实刚刚我们添加的位图就是位图资源
记得把Image属性清空!
基本代码模板(鸡啄米)
  1. CBitmap Bitmap;
  2. HBITMAP hBitmap;
  3. Bitmap.LoadBitmap(位图资源ID);
  4. hBitmap = (HBITMAP)Bitmap.GetSafeHandle();
  5. 控件成员变量.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.在添加事件处理程序中添加如下内容:
  1. CBitmap Bitmap;
  2.         HBITMAP hBitmap;

  3.         Bitmap.LoadBitmap(IDB_BITMAP1);
  4.         hBitmap = (HBITMAP)Bitmap.GetSafeHandle();
  5.         m_PictureCtrl1.SetBitmap(hBitmap);
复制代码

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

评分

参与人数 1荣誉 +7 鱼币 +7 贡献 +5 收起 理由
拈花小仙 + 7 + 7 + 5 感谢楼主无私奉献!

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-12-8 21:17:39 | 显示全部楼层
想问下MFC在鼠标按下时  光标处显示图片 并随鼠标移动 松开鼠标时 图片消失  也就是做一个图片移动的效果  
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-19 19:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表