CFont * f;
f = new CFont;
f->CreateFont(24,                // nHeight
0,                         // nWidth
  0,                         // nEscapement
  1,                         // nOrientation
FW_BOLD,                   // nWeight
   TRUE,                      // 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("Arial"));                 // lpszFac
GetDlgItem(IDC_STATIC_SYSSET)->SetFont(f);  用上面方法更改字体,字号,但是字体只能为 _T("Arial"));我在里面添加"宋体"确仍然显示"Arial"没有变化,请高手指点,或是给兄弟指一条其他更改字体,字号的方法.谢谢!

解决方案 »

  1.   

    将字符集从ANSI_CHARSET改为GB2312_CHARSET,然后将Arial改为宋体试试
      

  2.   

    要先用CFont* def_font = dc.SelectObject(&f);
    设成系统当前的字体,这时
    GetDlgItem(IDC_STATIC_SYSSET)->SetFont(f);才会得到“宋体”
      

  3.   

    to  happyparrot(为何我买彩票从来不中奖?没钱怎么办阿?):   还是不行啊!!!   什么原因?
      

  4.   

    to  rongrong_abc(阳光的味道) ( ) 你设置的def_font 的是啥用意?我的这个语句在OnInitDialog()中,
    没有取得dc指针,我用语句CPaintDC dc(this);获取指针后还是出问题!!!
     BOOL CSysDlg::OnInitDialog() 
    {
    CDialog::OnInitDialog();

    // TODO: Add extra initialization here
    CFont * f;
    f = new CFont;
    f->CreateFont(24,                // nHeight
    0,                         // nWidth
      0,                         // nEscapement
      1,                         // nOrientation
    FW_BOLD,                   // nWeight
       TRUE,                      // 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("Arial"));                 // lpszFac
    GetDlgItem(IDC_STATIC_SYSSET)->SetFont(f);……
    }
    请给出完整一些的代码!谢谢!
      

  5.   

    随便给你写了一个演示
    BOOL CAbcDlg::OnInitDialog()
    {
    CDialog::OnInitDialog(); // Add "About..." menu item to system menu. // IDM_ABOUTBOX must be in the system command range.
    ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
    ASSERT(IDM_ABOUTBOX < 0xF000); CMenu* pSysMenu = GetSystemMenu(FALSE);
    if (pSysMenu != NULL)
    {
    CString strAboutMenu;
    strAboutMenu.LoadString(IDS_ABOUTBOX);
    if (!strAboutMenu.IsEmpty())
    {
    pSysMenu->AppendMenu(MF_SEPARATOR);
    pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
    }
    } // Set the icon for this dialog.  The framework does this automatically
    //  when the application's main window is not a dialog
    SetIcon(m_hIcon, TRUE); // Set big icon
    SetIcon(m_hIcon, FALSE); // Set small icon

    // TODO: Add extra initialization here
    CFont font;
    VERIFY(font.CreateFont(
       18,                        // 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
       "宋体"));                 // lpszFacename GetDlgItem(IDC_EDIT1)->SetFont(&font);

    return TRUE;  // return TRUE  unless you set the focus to a control
    }
    OK
    我设的对话框的字体是“仿宋....”用这个就在IDC_EDIT1输出宋体
      

  6.   

    CPaintDC、CDC一类的要加在SHOWWINDOW及以后
      

  7.   

    好的,谢谢rongrong_abc(阳光的味道) ( ) ,问题解决了!谢谢其他朋友的关注!