创建一个位图按钮控件

在创建一个位图按钮控件时,设置BS_OWNERDRAW则指明按钮是自定义的(用户自己绘制的)。
这样,Windows就会为该按钮发送WM_MEASUREITEM和WM_DRAWITEM消息,由框架处理这些消
息并维护按钮的外观。
在窗口的客户区创建一个位图按钮的步骤如下: 1. 为按钮创建1到4个位图。 
2. 构造CBitmapButton对象。 
3. 调用Create函数创建Windows按钮控件,并把它加到CBitmapButton对象上。 
4. 调用成员函数LoadBitmaps加载位图资源。 
在对话框控件中包含位图按钮的步骤如下: 1. 为按钮创建1到4个位图。 
2. 创建一个对话框模板,其中有一个自定义的按钮放在需要位图按钮的位置。模板中按钮的大小无关紧要。 
3. 把按钮的标题设置为“MYIMAGE”一类的字符串,并为按钮定义一个类似于IDC_MYIMAGE的代号。 
4. 在应用的资源脚本中,分别为每个给该按钮创建的图像一个ID,ID的值为在步骤3中的标题后加上
如下的一个字母——U、D、F或X,分别代表正常、按下、获得焦点和禁止存取状态下的按钮。例如
,标题设为“MYIMAGE”时,ID就应该是字符串("MYIMAGEU"、"MYIMAGED"、"MYIMAGEF"和"MYIMAGEX")。
位图的ID必须用引号括起来,否则资源编辑器就会为资源赋上一个整数值,MFC在加载图像时就会失败。 
5. 在应用的对话框类(从类CDialog继承而来)中加上一个CBitmapButton成员对象。 
6. 在CDialog对象的OnInitDialog例程中调用CBitmapButton对象的AutoLoad函数,参数是按钮的
ID和CDialog对象的this指针。 
如果想处理Windows的通知消息,如位图按钮控件发给它的父对象(通常是从CDialog继承来的)
的BN_CLICKED消息,就要在从CDialog继承来的对象中加入消息映射入口以及处理每个消息的成员函数。
CBitmapButton对象发出的通知和CButton对象发出的通知一样。
类CToolBar对位图对象的实现有些不同。
要了解有关CBitmapButton的更详细信息,请参阅联机文档“Visual C++程序员指南”的“控件主题”部分。
#include <afxext.h>

CBitmapButton类的成员

构造函数 CBitmapButton 构造一个CBitmapButton对象 
LoadBitmaps 从应用的资源文件中加载一个或多个命名的位图初始化对象,并把位图加到对象上 
AutoLoad 把对话框中的一个按钮与一个CBitmapButton对象联系上,加载位图并调整按钮的大小以放下位图 

操作 SizeToContent 调整按钮的大小以放下整个位图

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值