m_oFont.CreateFont(
30,                        // 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
_T("黑体"));               // lpszFacename
GetDlgItem(IDC_TRY)->SetFont(&m_oFont);如上,为什么 运行后字体看上去还象宋体?

解决方案 »

  1.   

    ANSI_CHARSET 改成 GB2312_CHARSET
    nPitchAndFamily 置为 VARIABLE_PITCH
      

  2.   

    lfCharSet 
    Specifies the character set. The following values are predefined. 
    ANSI_CHARSET
    BALTIC_CHARSET
    CHINESEBIG5_CHARSET
    DEFAULT_CHARSET
    EASTEUROPE_CHARSET
    GB2312_CHARSET
    GREEK_CHARSET
    HANGUL_CHARSET
    MAC_CHARSET
    OEM_CHARSET
    RUSSIAN_CHARSET
    SHIFTJIS_CHARSET
    SYMBOL_CHARSET
    TURKISH_CHARSET
    VIETNAMESE_CHARSET黑体和宋体是属于GB2312_CHARSET字符集的,你错误的设成ANSI_CHARSET,系统会改为默认字体
      

  3.   

    改为
    m_oFont.CreateFont(
    30,                        // nHeight
    0,                         // nWidth
    0,                         // nEscapement
    0,                         // nOrientation
    FW_NORMAL,               // nWeight
    FALSE,                     // bItalic
    FALSE,                     // bUnderline
    0,                         // cStrikeOut
    GB2312_CHARSET,              // nCharSet
    OUT_DEFAULT_PRECIS,        // nOutPrecision
    CLIP_DEFAULT_PRECIS,       // nClipPrecision
    DEFAULT_QUALITY,           // nQuality
    DEFAULT_PITCH | FF_SWISS,  // nPitchAndFamily
    _T("黑体"));  
    应该就可以