各位高手大家好,我想请问一下,我如果用cdc画了一个图形,当我接着再画时就会死机,请问这是为什么,是不是我的资源释放的问题,望各位高手指点,下面是我封装的一段画圆的代码,我第一次调用时没问题,可是再次调用时就会死机:
void CNavigationView::MyCircle(CDC *pDC,POINT ptCenter,UINT uRadius)
{
POINT ptLeftTop,ptRightBottom;
ptLeftTop.x=ptCenter.x-uRadius;//根据给出的半径计算左上角及又下角值
ptLeftTop.y=ptCenter.y-uRadius;
ptRightBottom.x=ptCenter.x+uRadius;
ptRightBottom.y=ptCenter.y+uRadius; CPen pen;//画笔
pen.CreatePen(PS_SOLID,2,RGB(0,0,255));
CPen* pOldPen=(CPen*)pDC->SelectObject(&pen);//载入自己建立的pen,并同时存储原来的状态到pOldPen中
CBrush *pOldBrush=(CBrush*)pDC->SelectStockObject(NULL_BRUSH);//空画刷,使圆内不填充颜色 pDC->Ellipse(ptLeftTop.x,ptLeftTop.y,ptRightBottom.x,ptRightBottom.y);//调用画椭圆函数 pDC->SelectObject(pOldBrush);//恢复原来的DC
pDC->SelectObject(pOldPen);
pen.DeleteObject();
ReleaseDC(pDC);
}
void CNavigationView::MyCircle(CDC *pDC,POINT ptCenter,UINT uRadius)
{
POINT ptLeftTop,ptRightBottom;
ptLeftTop.x=ptCenter.x-uRadius;//根据给出的半径计算左上角及又下角值
ptLeftTop.y=ptCenter.y-uRadius;
ptRightBottom.x=ptCenter.x+uRadius;
ptRightBottom.y=ptCenter.y+uRadius; CPen pen;//画笔
pen.CreatePen(PS_SOLID,2,RGB(0,0,255));
CPen* pOldPen=(CPen*)pDC->SelectObject(&pen);//载入自己建立的pen,并同时存储原来的状态到pOldPen中
CBrush *pOldBrush=(CBrush*)pDC->SelectStockObject(NULL_BRUSH);//空画刷,使圆内不填充颜色 pDC->Ellipse(ptLeftTop.x,ptLeftTop.y,ptRightBottom.x,ptRightBottom.y);//调用画椭圆函数 pDC->SelectObject(pOldBrush);//恢复原来的DC
pDC->SelectObject(pOldPen);
pen.DeleteObject();
ReleaseDC(pDC);
}
但是现在我还要请教各位一个问题,就是我用cdc绘制了一个图形之后弹出一个dialog,当点击确定退出这个dialog之后或者刷新窗口之后,我所画的图形就没有了,请问这是什么原因?如何控制图形的显示或删除呢?