学习使用CBitmapButton类-----初学MFC



刚开始学习MFC,在通过论坛文章使用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"
      
    分别代表UpDownFocusDisable状态。
      
    如资源编辑时,希望关联的按钮的CaptionTest
      
    那么其默认装载的位图资源的ID为:"TestU"/"TestD"/"TestF"/"TestX"
      
    注意分号""也是其ID的一部分。

    ///

总是出现

由于对MFC的不熟悉,研究了好久,终于找到问题所在,原因是:

void CMyDlg::DoDataExchange(CDataExchange*pDX)

{

      CDialog::DoDataExchange(pDX);

      DDX_Control(pDX, IDC_BUTTON1,m_mapButton);//这句话的意思是将IDC_BUTTON1与 m_mapButton绑定,从而导致出现这种错误,对于这个函数的作用就不说了;这句话去掉就Ok了!

}

发现错误是一种乐趣,不是吗?特意记下自己学习过程中的Error,学习是一个不断犯错不断改错的过程,Indeed!

 

 

转载于:https://my.oschina.net/u/2344808/blog/397903

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值