(界面笔记之二十七)设置按钮图标可用不可用的图标显示(CBitmapButton的使用)

按钮不可用时,上面加载的图标就就没了!以下是解决办法哦!
     还有一点就是彩色的图片变灰只需要在PS里面做如下操作:
     打开图片->图像->调整->去色
参考网址:http://dev.csdn.net/htmls/66/66766.html
CBitmapButton的使用
       CBitmapButton作为MFC的控件类,并不为很多人所使用,因为现在网上遍布着从CButton派生的各种各样的按钮类,其中最为著名的就是 CButtonST类了。但是最近在CSDN上看到几个问题都是使用CBitmapButton类,但是由于使用错误、不当而造成程序崩溃或者错误的。所 以总结一下CBitmapButton类的使用,希望能帮助一些初学者。
       可以参考MSDN自带的例子“CTRLTEST”学习CBitmapButton的用法。个人总结如下: 
1、在资源编辑的时候选中按钮的Owner  draw即可,不需要选择Bitmap属性! 
2、在程序中定义一个CBitmapButton成员变量。不能使用ClassWizard为按钮映射一个CButton变量,然后改为CBitmapButton,这么做并不能将按钮直接映射为CBitmapButton类的对象,反而会出现初始化错误。 
3-1、使用CBitmapButton::LoadBitmaps装载各种状态的图片,使用SubclassDlgItem关联到想要的按钮,使用 CBitmapButton::SizeToContent函数使按钮适合图片大小。。注意Loadbitmaps一定要在关联到按钮之前进行! 
3-2、或者是使用CBitmapButton::AutoLoad函数关联到想要的按钮。需要注意:
A、之前不能使用CBitmapButton::LoadBitmaps装载各种状态的图片,否则会出错。
B、AutoLoad函数完成的关联和改变按钮大小的CBitmapButton::SizeToContent函数的功能。
C、CBitmapButton::AutoLoad使用的位图是默认资源ID的,即它会自动装载相关资源位图。位图的资源ID格式为:"按钮 Caption+U"、"按钮Caption+D"、"按钮Caption+F"、"按钮Caption+X",分别代表Up、Down、Focus、 Disable状态。如资源编辑时,希望关联的按钮的Caption为Test,那么其默认装载的位图资源的ID为:"TestU"/"TestD" /"TestF"/"TestX",注意分号""也是其ID的一部分。 

1、在资源编辑的时候选中按钮的Owner  draw即可,不需要选择Bitmap属性! 
2、在程序中定义一个CBitmapButton成员变量。不能使用ClassWizard为按钮映射一个CButton变量,然后改为CBitmapButton,这么做并不能将按钮直接映射为CBitmapButton类的对象,反而会出现初始化错误。 
3-1、使用CBitmapButton::LoadBitmaps装载各种状态的图片,使用SubclassDlgItem关联到想要的按钮,使用 CBitmapButton::SizeToContent函数使按钮适合图片大小。。注意Loadbitmaps一定要在关联到按钮之前进行! 

按照上面的注意事项做如下操作即可
CBitmapButton m_syncbtn;

m_syncbtn.LoadBitmaps(IDB_DOWNLOAD_ALL_GRAY, 0, 0, 0);
m_syncbtn.SubclassDlgItem(IDC_BUTTON_DOWNALL, this);
m_syncbtn.SizeToContent();
m_syncbtn.EnableWindow(FALSE);

m_syncbtn.LoadBitmaps(IDB_DOWNLOAD_ALL_COLOR, 0, 0, 0);
m_syncbtn.EnableWindow(TRUE);

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值