我想写一个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()中就会出错,希望大家能帮我一下了啊!
在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()中就会出错,希望大家能帮我一下了啊!
唉听说CSDN高手很多,今天第一次注册发了第一个问题,这么长时间,还有这么高的分。竟然一个回复也没有!!!让我太失望了。。
请大家再帮我看一下这部分代码有什么问题吗???
如果楼主你非要在OnPaint()加载的话BITMAP的话
楼主可以把四个加载BITMAP的CBitmap类在OnPaint内构造,然后在函数执行完后自动销毁如果直接修改楼主的代码,使不出错!
只需要在OnPaint()结尾处销毁已有系统句柄资源即可
在末尾处加上如下代码
DeleteObject(m_bitmap1.m_hObject);
m_bitmap1.m_hObject = NULL;
其他四个类一样操作既可! 解决了,楼主结帖吧^_^
我按zhejiang9(人づ龙) 说的做了,不过位图加载不了了,郁闷中。。
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));