可以看见Button创建显示出来了,但是程序随后就弹出中止的对话框了。各位大神,帮帮忙啦,谢谢 MFC ,BUTTON,程序中止 

解决方案 »

  1.   

    每次按键都要重新创建不崩才怪
    if(NULL != m_btn.GetSafeWnd())//窗口句柄不存在再创建
    {
     m_btn.Create....
    }
      

  2.   

    m_btn.Create只能调用一次,调用第二次当然就崩溃了。
    自己判断一下,你下个断点看看,是不是执行了两次以上
      

  3.   


    我判断了,不是因为调用多次的问题,调用create这一句没出错,但是在return回去时出错了。好吧,我直接问了,如果要在MFC Cview类里响应按键消息动态创建一个button,那应该怎么做呢?
      

  4.   

    第一次按键下去就出错了。而且我按照GetSafeHwnd()的方法写了,还是出错。
      

  5.   

    应该是if(NULL == m_btn.GetSafeWnd())//窗口句柄不存在再创建
    这样判断吧
      

  6.   

    我照着你的代码写了个试试,没有问题,不是按钮的问题,看你的错误信息是在wingdi文件中。
    那肯定是GDI绘图出错,再看看你的View里确实画了图像。wingdi文件1120行出错为:ASSERT(m_hObject == NULL)
    这种情况一般是把绘图对象(pen,brush对象)选入了设备上下文但是没有选出[用SelectObject()函数]导致的。
    检查一下你的自绘函数吧