按钮加载位图的几个方法 vc

本文介绍了在VC++中加载按钮位图的五种方法:1) 使用CButton类设置位图;2) 利用CBitmapButton类加载不同状态的位图;3) 继承CButton类并重写OnPaint方法;4) 使用CButtonST控件简化操作;5) 设置按钮为Owner Draw并自定义DrawItem方法。每种方法都有其优缺点,如位图自适应、文字显示、背景透明等。
摘要由CSDN通过智能技术生成

一,只加载一张位图的方法:

1,

装入bmp资源,id为IDB_BMP,按钮的bitmap属性设为true,icon属性为false。

 2,

CButton *pBtn = (CButton *)GetDlgItem(IDB_BMP);
 CBitmap bitMap;
 HBITMAP hBit ;
 if(bitMap.LoadBitmapW(IDB_NORMAL_BTN))
 {
  hBit = (HBITMAP)bitMap.Detach();
  pBtn->SetBitmap(hBit);
 }

缺点:图片不会自动拉伸。

二,为按钮的不同状态加载不同的位图:(使用CBitmapButton类)这种方法还可以。
1,按钮属性 Owner Draw选上,按钮ID: IDC_BUTTON1

为IDC_BUTTON1添加CButton变量m_button,
2,然后手动将CButton m_button改为
CBitmapButton m_button;
3,在初始化里边
m_button.LoadBitmaps(IDB_BITMAP1, IDB_BITMAP2);//IDB_BITMAP1:平时;IDB_BITMAP2:按下
m_button.SubclassDlgItem(IDC_BUTTON1, this);
m_button.SizeToContent();

或者用另一种方式,不必为IDC_BUTTON1添加关联的变量。
直接声明CBitmapButton m_button;࿰

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值