如题,我试了DeleteObject,好像不行,也试了Detach,好像也不行,请各位帮帮忙了

解决方案 »

  1.   

    CFont font;
    VERIFY(font.CreateFont(          //这里创建字体
       12,                        // nHeight
       0,                         // 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,  // nPitchAndFamily
       "Arial"));                 // lpszFacename// Do something with the font just created...
    CClientDC dc(this);  
    CFont* def_font = dc.SelectObject(&font);//将默认字体保存
    dc.TextOut(5, 5, "Hello", 5);//用所创建的字体font显示hello
    dc.SelectObject(def_font);//使用完毕后恢复为默认字体// Done with the font.  Delete the font object.
    font.DeleteObject(); //删除创建的字体这是MSDN上写的。
      

  2.   

    大不了用指针,每次new然后delete了。小问题实在搞不通就没必要费时间了
      

  3.   

    如果仅仅是你贴的这么点代码,甚至都不需要释放deleteObject,CFont出了他的作用域,就会自动析构了
    我个人是不建议这么做的,既然这个font需要反复使用,那么,就创建一个类的成员变量吧,以后直接调用就好了,也不用考虑释放的问题
      

  4.   

    无代码无真相。这种情况多是反复attach的问题,DeleteObject的有问题吧。