MFC显示位图(2-1)

MFC中可以通过Picture Control控件显示位图,也可以通过CBitmap类显示位图。

1 通过Picture Control控件显示位图

Picture Control控件实际上就是静态控件,即CStatic类。可以通过该控件的属性或者对该控件的成员变量,实现位图的显示。

1.1 通过设置控件属性显示位图

VS2008中创建一个基于对话框的MFC程序。

1.1.1 创建控件

“工具箱”中将Picture Control控件拖入到对话框中,如图1所示。

 

1 Picture Control控件拖入到对话框中

1.1.2 导入位图

将要显示的位图导入到项目中,导入的方法见《MFC导入图标文件的方法》。

1.1.3 设置控件属性

选中创建的Picture Control控件,之后在右键菜单中选择“属性”,在控件属性栏中,将“Type”的值选择为“Bitmap”,并且将“Image”的值选择为在“1.1.2 导入位图”中导入的位图ID。此时,在资源编辑窗口中就已经显示了该位图,如图2所示。

 

2 设置属性后的Picture Control控件

1.2 通过控件成员变量实现位图的显示

首先将1.1.3 设置控件属性”中提到的Picture Control控件的属性修改为默认值“Frame”。

1.2.1 为控件添加成员变量

选择该控件,在右键菜单中选择“添加变量”。之后,在“添加成员变量向导”对话框中将“类别”设置为“Control”,变量名设置为“m_image”,如图3所示。

 

3 为控件添加变量

1.2.2 通过成员变量设置控件

“1.1 通过设置控件属性显示位图”中可以看出,在控件中显示位图,首先要将控件的“类型”属性设置为“Bitmap”,之后指定要显示的位图。通过成员变量设置控件属性时,也是按照这个顺序。

1)设置控件类型属性

通过为控件添加的成员变量m_image,调用其成员函数ModifyStyle()来设置控件的类型属性。在基于对话框程序的OnInitDialog()函数中添加如下代码

m_image.ModifyStyle(SS_CENTER, SS_BITMAP, 0);
其中,ModifyStyle() 的第一个参数表示删除控件的 SS_CENTER 属性;第二个参数表示为控件添加SS_BITMAP 属性;第三个参数0 表示不移动控件的位置。

2)设置控件要显示的位图

通过成员变量m_image设置要显示的位图,首先要获得该位图的句柄。在OnInitDialog()函数中通过Windows API函数LoadBitmap()获取指定位图的句柄。

HBITMAP hBitmap = ::LoadBitmap(
AfxGetInstanceHandle()
, MAKEINTRESOURCE(IDB_BITMAP1)
);
其中,AfxGetInstanceHandle() 函数的作用是获取包含位图的程序的实例句柄; IDB_BITMAP1 是在“ 1.1.2 导入位图”中导入的位图 ID 。位图的句柄保存在 hBitmap 中。

接下来通过控件的成员变量m_image调用其成员函数SetBitmap()来设置要显示的位图。

m_image.SetBitmap(hBitmap);
其中,hBitmap 是要显示位图的句柄。

通过以上代码,也可以实现在Picture Control控件中显示指定的位图。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值