我的程序每运行一段时间背景就变黑

来源:百度知道 编辑:UC知道 时间:2024/06/15 16:44:15
我的程序采用的是把一个bmp文件放入bitmap中,然后讲盖对象放入一个画刷,然后用这个画刷画出背景,但是没过一段时间,这时间不固定,背景就会变成黑色,而且重启程序也不行,只有重启计算机才能正常,高手帮忙检查一下是什么问题。是mfc的机制问题呢?还是别的问题?
gdi对象都正常释放了,我特别检查过。这个bmp文件大小为5m。
今天使用debug版的时候提示wingdi.cpp109断言行错误,看网上说是dc冲突,不知道这个dc的冲突是怎么回事,怎么创建的dc会冲突?dc在创建了以后,应该在什么时候删除。
现在黑屏的貌似解决了,但出现了一个新的问题,就是每当关闭软件的时侯会抛出异常afxwin2.inl 116 0x80000003 。
if (m_bmBk.m_hObject == NULL)
{
m_bmBk.LoadBitmap(IDB_TABVIEW_BK);
}
m_BkBrush.CreatePatternBrush(&m_bmBk);

CBrush *pOldBrush=pDC->SelectObject(&m_BkBrush);

pDC->FillRect(pRect,&m_BkBrush);

pDC->SelectObject(pOldBrush);
if (m_BkBrush.m_hObject != NULL)
{
m_BkBrush.DeleteObject();
}
这个是画背景的代码。

这个画刷必须要是全局,或者成员对象,不能是局部对象。

在画完图之后就可以ReleaseDC

补充:
把代码片段贴出来看看。

如果不介意的话
不妨把程序发过来
EMail:myqqbox@qq.com

首先要创建一个屏幕的兼容DC,在兼容DC上画,不能直接在屏幕DC上画