我要给我的对话筐换字体 我用了CFont 的类,结果我发现一个问题.font.CreateFont(
  36,                        // 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
   "隶书");                 CFont *fn = pdc->SelectObject(&font);
 用这样的方法不能改变字体 ,可是我就用font.CreatePointFont(300,"隶书");
        CFont *fn = pdc->SelectObject(&font); 结果就改变了字体 这也是我不明白的地方,为什么会出现这样的情况,还是我那儿有错误;望大家指点.

解决方案 »

  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);
    dc.SelectObject(def_font);// Done with the font.  Delete the font object.
    font.DeleteObject(); 
    //这段是可以的
      

  2.   

    不知道为什么,"隶书"等字体用CreateFont不行,都用"宋体"代替了。
    而CreatePointFont和CreateFontIndirect都可以
    所以我想,是不是CreateFont设置参数的时候,不符合那些字体规则,所以替代了?
      

  3.   

    ANSI_CHARSET -> GB2312_CHARSET
      

  4.   

    只要系统中有的字体就可以
    ANSI_CHARSET -> GB2312_CHARSET 或者 ANSI_CHARSET -> DEFAULT_CHARSET