彻底解决GDI对象泄漏的问题
GDI画图时需要小心GDI对象泄露.以下为GDI对象释放对照表.
还需注意的是:释放的实机,必须在绘图设备被还原之后.
例如:
CFont font; font.CreateFont(12, // nHeight 5, // nWidth 0, // nEscapement 0, // nOrientation FW_NORMAL, // nWeight FALSE, // bItalic FALSE, // bUnderline 0, // cStrikeOut ANSI_CHARSET, // nCharSet OUT_DEFAULT_PRECIS, // nOutPrecision CLIP_DEFAULT_PRECIS, // nClipPrecision DEFAULT_QUALITY, // nQuality DEFAULT_PITCH | FF_SWISS, _T("Arial") // nPitchAndFamily Arial ); CFont * pOldFont = pDC->SelectObject(&font); //font.DeleteObject();放在此处释放,无法释放成功 rectFont.top = rectFill.top + 1; rectFont.left = rectFill.left + 1; rectFont.right = rectFont.left + 20; rectFont.bottom = rectFill.bottom - 1; pDC->TextOut(rectFont.TopLeft().x, rectFont.TopLeft().y, strNumber); pDC->SelectObject(pOldFont); font.DeleteObject();//只能在此处释放