MFC GDI环境HFONT、Cpen类型使用完后必须按时释放

来源:互联网 发布:英国海淘直邮网站 知乎 编辑:程序博客网 时间:2024/05/21 06:53

在使用OpenGL编写基于MFC的OpengGL PPI显示器的时候,开始总会有内存溢出,一直找不到原因,后来发现是创建了一个HFONT的字体变量,然后字体用完后没有释放,原本以为HFONT类型的变量和int型变量一样,是一种基本类型,无需手动释放,后来发现,这是微软在MFC GDI环境下提供的一种变量,和Cpen一样,需要做手动释放,具体代码如下:

     

 //建立字体      HFONT hFont;      //创建字体      hFont =CreateFont(-16,0,0,0,400,0,0,0,GB2312_CHARSET,0,0,0,FF_MODERN,TEXT("宋体"));      //显示相应字体的字      XDSetOpenGLText(47,180,"180°",hFont,1.0f,1.0f,0.0f);      //字体用完后一定要主动手动去释放字体变量      //释放字体变量,必须释放,否则会有溢出等问题      DeleteObject(hFont);

 

Cpen类似也是一样的,CPen的释放代码如下:

 

//建立CPen CPenpen(PS_SOLID,1,m_GP_clrFrame); CPen*pOldPen; pOldPen = pdc->SelectObject(&pen);  //使用Cpen......//释放CPEN pdc->SelectObject(pOldPen); pen.DeleteObject();


0 0
原创粉丝点击