MFC 图片按钮的实现

本文介绍了在MFC中实现图片按钮的三种方法:CBitmapButton、GDI+和CButtonST。CBitmapButton适合添加bmp位图,但其他图片可能有兼容性问题;GDI+方式需要设置透明并添加相关头文件和库;CButtonST在某些情况下会导致异常,需要调整按钮属性。三种方法各有特点,但作者最终选择了Qt进行项目开发。
摘要由CSDN通过智能技术生成

1.CBitmapButton 方式实现

在MFC工具栏,添加按钮到界面,然后会修改按钮的属性,设置Owner draw为true;

CBitmapButton只用于添加bmp位图,其他图片会有一些兼容性问题,不会显示出来。具体原因没有深究,有空可自行深入学习。

LoadBitmaps加载状态图片,注意顺序为Up,Down,Focused,Disabled。并且添加的位图id后缀必须也是对应 Up,Down,Focused,Disabled,方便LoadBitmaps导入,否则可能因此抛出异常。

这边使用 SubclassDlgItem 将 CBitmapButton 变量 m_bitmapbtn 绑定按钮ID。也可以通过在MFC操作界面,对按钮鼠标右键添加变量,并将变量类型将CButton修改为他的派生类CBitmapButton。

最后在对话框的OnInitDialog函数中添加如下代码,就可以实现图片按钮。

    m_bitmapbtn.SubclassDlgItem(IDC_BTN_BMP, this);  //CbitmapButton 变量绑定按钮
​​​​​​​    m_bitmapbtn.LoadBitmaps(IDB_BITMAP_DOWN, IDB_BITMAP_UP);//为变量按钮添加bmp图片,LoadBitmaps加载状态图片,注意顺序为Up,Down,Focused,Disabled。
    m_bitmapbtn.SizeToContent(); // 设置按钮适应图片大小

2.GDI+ 方式实现

这边使用了MFC Button 控件,属性设置,image type 设置为无&

  • 0
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值