• CBitmapButton的使用


    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的一部分。 




        CBitmapButton button1;

         button1.AutoLoad(IDC_BUTTON1,
    this);

         button1.LoadBitmaps(IDB_BITMAP1, IDB_BITMAP2,IDB_BITMAP3);

        button1.LoadBitmaps(IDB_BITMAP1, IDB_BITMAP2,IDB_BITMAP3,IDB_BITMAP1);
            VERIFY(button1.SubclassDlgItem(IDC_BUTTON1, 
    this));  //关联
        button1.SizeToContent();//按钮与图片大小一致


  • 相关阅读:
    vue向组件传递数据
    微信会员卡,开卡组件开发遇到总汇
    siteserver安装向导完成后,显示System.Web.UI.page render System.ArgumentNullException
    spring mvc中的valid
    django 命名空间详解
    spring MVC 如何查找URL对应的处理类
    【HDU 2010】水仙花数
    【CSU 1079】树上的查询
    【Poj 1330】Nearest Common Ancestors
    【Dairy】2016.10.20 生日记
  • 原文地址:https://www.cnblogs.com/wqj1212/p/1144759.html
Copyright © 2020-2023  润新知