关于在OnPaint中刷新背景图片出错问题的解决
浩子 2007-08-26 01:20:44 我的程序编译运行好像没有问题,但在DEBUG时,
如果运行长点时间就会报错,具体内容如下,望高手帮忙.
==================================================
头文件中定义:
private:
CBitmap m_Background;
==================================================
在OnInitDialog中有如下:
......
m_Background.LoadBitmap(IDB_MAINBK);
......
==================================================
OnPaint代码段如下:
......
CPaintDC dc(this);
CDC dcMem;
dcMem.CreateCompatibleDC(&dc);
BITMAP bitMap;
m_Background.GetBitmap(&bitMap);
CBitmap *pbmpOld=dcMem.SelectObject(&m_Background);
dc.StretchBlt0,0,bitMap.bmWidth,bitMap.bmHeight,&dcMem,0,0,bitMap.bmWidth,bitMap.bmHeight,SRCCOPY);
if(pbmpOld)
dcMem.SelectObject(pbmpOld);
dcMem.DeleteDC();
......
===================================================
出错会停在一个叫dbgrpt.c的文件中,
代码段如下:
#undef _CrtDbgBreak
_CRTIMP void _cdecl _CrtDbgBreak(
void
)
{
DebugBreak();
}
再继续运行会停在Onpaint中的如下代码处:
CBitmap *pbmpOld=dcMem.SelectObject(&m_Background);
谢谢,这个问题困扰我很久了,郁闷.