请看这个写在非模态对话框里的函数出了什么问题?为什么她会在boundschecker显示DC指针内存泄漏?
void CXXXdlg::PlotReferenceFrameSeal(CDC *pDC)
{
   CFont MyFont; MyFont.CreateFont(40,15,0,0,400,FALSE,FALSE,0,ANSI_CHARSET,
OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,
DEFAULT_PITCH|FF_SWISS,"Arial"); CFont* OldFont = (CFont*) pDC->SelectObject(MyFont); int k;
int x, y;
CString ss;
................................................. pDC->SelectObject(OldFont); MyFont.DeleteObject();
}

解决方案 »

  1.   


       CFont MyFont; MyFont.CreateFont(40,15,0,0,400,FALSE,FALSE,0,ANSI_CHARSET,
    OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,
    DEFAULT_PITCH|FF_SWISS,"Arial"); CFont* OldFont = (CFont*) pDC->SelectObject(MyFont);//改为&MyFont int k;
    int x, y;
    CString ss;
    ................................................. pDC->SelectObject(OldFont) MyFont.DeleteObject();//这样不需要
      

  2.   

    无论有没有MyFont.DeleteObject();都会出现以下函数的错误提示:
    _AFXWIN_INLINE HGDIOBJ CGdiObject::GetSafeHandle() const
    { return this == NULL ? NULL : m_hObject; }
    无句柄
      

  3.   

    CFont MyFont; MyFont.CreateFont(40,15,0,0,400,FALSE,FALSE,0,ANSI_CHARSET,
    OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,
    DEFAULT_PITCH|FF_SWISS,"Arial"); CFont* OldFont = (CFont*) pDC->SelectObject(&MyFont);   /***改为&MyFont ***/ int k;
    int x, y;
    CString ss;
    ................................................. pDC->SelectObject(OldFont)