在学习时,看到说用CBitmapButton::AutoLoad()这个函数可以自动给我的按钮添加四个不同状态时的图标,我查了MSDN,也在网上搜了具体做法,我完全是按照MSDN上说的做的,也跟网上大家说的做法一样,可是运行时老师出错,不知道怎么回事,有哪位高人指点一下,谢谢!
PS:编译时没有任何错误和警告,运行时的错误见下图:

解决方案 »

  1.   

    用得应该是VS2008吧,定位到wincore.cpp中的第329行可以看到如下一句:
    ASSERT(m_hWnd == NULL);     // only attach once, detach on destroy
    也就是你的m_hWnd值为0。
    这句代码是出现在函数:BOOL CWnd::Attach(HWND hWndNew)
    也就是你的按钮资源为0,看是不是对按钮设置关联变量出了问题。删除了重新添加控件变量
      

  2.   

    谢谢三楼追梦昨天上午一直没有人回复,由于我的程序得尽快继续下去,我就放弃了这个方法,我之前自己写了一个自绘按钮的类的,因为又学习到有CBitmapButton,所以想试试,是不是更好用,但是没有找到上述问题的解决办法,我就还是去用我自己的类了!你说的这个,我改天再试试看,但愿能轻松解决!
    这样我也算是又学会了一个往按钮添加图标的方法了,O(∩_∩)O~呵呵!
      

  3.   

    改为Release状态就可以啦。我也搞不清楚为什么Debug状态不行的。
      

  4.   

    把类似于
    DDX_Control(pDX, IDC_DBSUB_BUTTON, m_subButton);  DDX_Control(pDX, IDC_BUTTON_BITMAP, m_bmButton)
    的关联注释掉就行了,必须的
      

  5.   

    Create 自绘按钮?  
    用LoadBitmaps 就行  但是不知道怎么缩放图片,
    SizeToContent  改变按钮大小,同图片大小
      

  6.   

    先给CBitmapButton添加BS_OWNERDRAW style,再把它当成CButton一样使用试试。