图像组显示及内存释放问题

af龙行天下 2018-09-04 05:33:14
各位专家:我在VC6.0中,显示一组位图,
在切换其它组位图时,我需要把原来显示的内容在内存中清除,但出错了,是什么原因?

class CBookReadWnd : public CDialog
{
// Construction
public:
int ClearData();
int DrawBookReadMap();

CTypedPtrArray<CObArray, CDC*> bmpList;
}

int CBookReadWnd::DrawBookReadMap() // 显示一组位图
{
CDC* pDC=GetDC();

for(i=0;i<num;i++)
{
CDC* pNewDC=new CDC;
pNewDC->CreateCompatibleDC(pDC);

CBitmap bmpFace;
bmpFace.CreateCompatibleBitmap(pDC,ww,hh);

bmpFace.SetBitmapBits(ww*hh*sizeof(COLORREF),pBits);
delete[]pBits;
pBits=NULL;
pNewDC->SelectObject(&bmpFace);
bmpFace.DeleteObject();

bmpList.Add(pNewDC);

}
return 1;
}


int CBookReadWnd::ClearData()  //  清除数据
{
int num=bmpList.GetSize();
for(int i=0;i<num;i++)
{
bmpList[i]->DeleteDC();
delete bmpList[i];
}

bmpList.RemoveAll();

return 1;
}
...全文
157 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2018-09-05
  • 打赏
  • 举报
回复
GetLastError

崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack即“调用堆栈”里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处,看不懂时双击下一行,直到能看懂为止

19,469

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧