我想写一个24点的游戏,并用四个按扭分别载入四张位图表示四张牌,能运行,但在运行后点击发牌按扭后就出现错误,程序终止,请大家帮帮我啊!              
       
在DLG中声明:  
int srand[4];     //点击发牌产生四个随机数              
CBitmap        m_bitmap1,m_bitmap2,m_bitmap3,m_bitmap4;              
CButton        *m_pButton;              
       
在OnPaint()中:                      
       
m_bitmap1.LoadBitmap(IDB_BITMAP0);              
 m_bitmap2.LoadBitmap(IDB_BITMAP0);              
 m_bitmap3.LoadBitmap(IDB_BITMAP0);              
m_bitmap4.LoadBitmap(IDB_BITMAP0);              
                       
 m_pButton=(CButton*)GetDlgItem(IDC_BUTTON1);              
 m_pButton->SetBitmap(HBITMAP(m_bitmap1));              
               
 m_pButton=(CButton*)GetDlgItem(IDC_BUTTON2);              
 m_pButton->SetBitmap(HBITMAP(m_bitmap2));              
                                       
 m_pButton=(CButton*)GetDlgItem(IDC_BUTTON3);              
 m_pButton->SetBitmap(HBITMAP(m_bitmap3));              
                                       
 m_pButton=(CButton*)GetDlgItem(IDC_BUTTON4);              
 m_pButton->SetBitmap(HBITMAP(m_bitmap4));              
               
       
每次刷新重新进入OnPaint()中就会出错,希望大家能帮我一下了啊!              

解决方案 »

  1.   

    我的代码很难吗?
    唉听说CSDN高手很多,今天第一次注册发了第一个问题,这么长时间,还有这么高的分。竟然一个回复也没有!!!让我太失望了。。
    请大家再帮我看一下这部分代码有什么问题吗???
      

  2.   

    老大,晚上大家要睡觉的。你不要在OnPaint里LoadBitmap,只要在OnInitDialog里面Load一次就行了。
      

  3.   

    同意楼上,就是在OnInitDialog里加载BITMAP
    如果楼主你非要在OnPaint()加载的话BITMAP的话
    楼主可以把四个加载BITMAP的CBitmap类在OnPaint内构造,然后在函数执行完后自动销毁如果直接修改楼主的代码,使不出错!
    只需要在OnPaint()结尾处销毁已有系统句柄资源即可
    在末尾处加上如下代码
    DeleteObject(m_bitmap1.m_hObject);
    m_bitmap1.m_hObject = NULL;
    其他四个类一样操作既可!     解决了,楼主结帖吧^_^         
      

  4.   

    谢谢大家帮我。
    我按zhejiang9(人づ龙) 说的做了,不过位图加载不了了,郁闷中。。
      

  5.   

    在OnInitDialog()中
    m_bitmap1.LoadBitmap(IDB_BITMAP0);              
     m_bitmap2.LoadBitmap(IDB_BITMAP0);              
     m_bitmap3.LoadBitmap(IDB_BITMAP0);              
    m_bitmap4.LoadBitmap(IDB_BITMAP0);              
    在OnPaint()中:    
     m_pButton=(CButton*)GetDlgItem(IDC_BUTTON1);              
     m_pButton->SetBitmap(HBITMAP(m_bitmap1));              
                   
     m_pButton=(CButton*)GetDlgItem(IDC_BUTTON2);              
     m_pButton->SetBitmap(HBITMAP(m_bitmap2));              
                                           
     m_pButton=(CButton*)GetDlgItem(IDC_BUTTON3);              
     m_pButton->SetBitmap(HBITMAP(m_bitmap3));              
                                           
     m_pButton=(CButton*)GetDlgItem(IDC_BUTTON4);              
     m_pButton->SetBitmap(HBITMAP(m_bitmap4));