MFC GDI環境HFONT、Cpen類型使用完後必須按時釋放

在使用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();


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章