参考:
vs2017异常 debug assertion failed! Program:program name unknown File:wingdi.cpp line 1113
CPen,HFONT用完一定要释放,不然会造成GDI对象的增加,程序崩溃
操作字体时如果使用了多个CFont对象,出现这个问题
File:f:ddvctoolsvc7libsshipatlmfcsrcmfc wingdi.cpp line 1113
解决办法释放旧字体再使用新字体
font.DeleteObject();
CFont字体使用方法,用完要释放
mFont = ::CreateFontIndirect(&lf);//创建字体
... ...
pdc->SelectObject(mFont); //SetFont
::DeleteObject(hFont);
这个字体释放以后可能会导致字体使用失败的情况,字体应声明成类的成员变量m_font,然后在析构函数中释放。要使用多个cfont变量时需要释放上一个
CPen的释放
CPen pen(PS_SOLID,1,m_GP_clrFrame);
CPen *pOldPen;
pOldPen = pdc->SelectObject(&pen);
... ...
pdc->SelectObject(pOldPen);
pen.DeleteObject();