VC为按钮控件添加图片的方法有很多种:

本文详细介绍了如何在MFC工程中使用CBitmapButton控件显示位图,并通过实例演示了如何设置不同状态下的图片,包括按钮点击事件处理及刷新机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

注:图片需要时位图,BMP格式
直接调用SetBitmap; CButton pButton->SetBitmap(hBitmap);
使用CButtonST控件;
使用CDC;
使用CBitmapButton;
这里主要讲解CBitmapButton的使用,CBitmapButton作为MFC的控件类,具体使用如下:

创建一个新的基于对话框的MFC工程

1、首先添加按钮控件,将属性Owner Draw设为True,按钮ID: IDC_BUTTON1
2、添加位图资源ID: IDB_BITMAP_CLOSE IDB_BITMAP_RED
3、在对话框类中添加private成员变量: CBitmapButton m_button; bool LedFlag;
4、在初始化函数OnInitDialog里添加图片加载:
在这里插入图片描述

使用CBitmapButton::LoadBitmaps装载各种状态的图片,再用SubclassDlgItem关联到想要的按钮,使用
CBitmapButton::SizeToContent函数使按钮适合图片大小。注意Loadbitmaps一定要在关联到按钮之前进行!
5、为按钮控件添加单击事件处理函数,输入如下代码:
在这里插入图片描述

按理来说,写上m_ctrlButton.LoadBitmaps(图片ID);就可以了,可是这样做之后,发现按键了没反应。无意中将对话框最小化再还原,发现图片变了。所以实际上是没有进行刷新导致的。在后面加上m_button.Invalidate()就可以了。
6、运行程序
在这里插入图片描述

单击控件按钮变成红色
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BeanGo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值