MFC:Picture控件的用法

一、利用Picture控件静态加载显示Bitmap图片

  1. 在界面上创建Picture控件
  2. 将Picture控件的Type属性设为Bitmap
  3. 导入或新建Bitmap类型资源,ID为IDB_BITMAP1等等
  4. 为控件添加变量CStatic m_pic;

加载图片代码:

HBITMAP hBitmap = ::LoadBitmap(AfxGetInstanceHandle(),
MAKEINTRESOURCE(IDB_BITMAP1));
m_pic.SetBitmap(hBitmap);

分析:

优点:代码非常简洁
缺点:
1、加载的Bitmap不可调整大小,取实际大小值,Picture控件会自动调整为Bitmap的实际大小值。
2、加载的Bitmap资源只能在模块内部

二、利用Picture控件动态加载显示Bitmap图片

HBITMAP hBitmap = (HBITMAP)::LoadImage(AfxGetInstanceHandle(),
    TEXT("D:\\test.bmp"), IMAGE_BITMAP, 50, 50, 
    LR_DEFAULTCOLOR | LR_LOADFROMFILE | LR_CREATEDIBSECTION);
m_pic.SetBitmap(hBitmap);

分析:

  1. 加载的图片在模块外
  2. 可以指定图片大小,如上图中的50,50,若实际大小和此不相符,会自动缩放图片
  3. LR_DEFAULTCOLOR — 指定按照原图的颜色加载图片,不可少
    LR_LOADFROMFILE — 加载外部的Bitmap,一定要指定
    LR_CREATEDIBSECTION — 一般会指定
  4. 如若按照图片本身的大小加载,则设置cx,cy为0,0,并且在最后的标志位加上|LR_DEFAULTSIZE

注意:从网上下载的Bitmap图片可能用上面的方法加载失败,返回的HBITMAP为NULL,GetLastError()返回0,这个一般是图片格式的问题,可以用Windows的画图程序打开Bitmap再另存为24位位图的bmp格式就可以了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值