现在有一项目已经接近完工,客户提出要增大界面字体,这些界面都使用VC自带的Static,Edit等控件实现的,请教修改办法!    使用GetDlgItem(XXX)->SetFont()只能改变字体,不能改变大小,为何?    百分相送,不胜感激!

解决方案 »

  1.   

    CFont font;
    LOGFONT lf;
    memset(&lf, 0, sizeof(LOGFONT));       // zero out structure
    lf.lfHeight = 12;                      // request a 12-pixel-height font
    strcpy(lf.lfFaceName, "Arial");        // request a face name "Arial"
    VERIFY(font.CreateFontIndirect(&lf));  // create the fontGetDlgItem(XXX)->SetFont(&font);
      

  2.   

    下面的例子中,先取得编辑框本身的字体,然后改变其大小(需要注意的是,这种方法下,编辑框本身的字体如果不是TrueType型的话,字体大小的变化不是“连续”的,某些大小值的设定有可能不起作用):CYourDlg中增加成员变量CFont   m_font; //这个绝对不能使临时变量BOOL   CYourDlg::OnInitDialog()   
    {
    CDialog::OnInitDialog();//   TODO:   Add   extra   initialization   here
    CWnd   *pEdit   =   GetDlgItem(IDC_EDIT1);
    CFont   *pfont   =   pEdit->GetFont();
    LOGFONT   logfont;
    pfont->GetLogFont(&logfont);
    logfont.lfHeight   =   -18;
    m_font.CreateFontIndirect(&logfont);
    pEdit->SetFont(&m_font);return   TRUE;     //   return   TRUE   unless   you   set   the   focus   to   a   control
                                //   EXCEPTION:   OCX   Property   Pages   should   return   FALSE
    }void   CYourDlg::OnDestroy()   
    {
    CDialog::OnDestroy();//   TODO:   Add   your   message   handler   code   here
    m_font.DeleteObject();
    }
      

  3.   

    bRetVal = m_fntSpeed.CreateFont( 16,                        // nHeight
     0,                         // nWidth
     0,                         // nEscapement
     0,                         // nOrientation
     FW_BOLD,                   // nWeight
     FALSE,                     // bItalic
     FALSE,                     // bUnderline
     0,                         // cStrikeOut
     DEFAULT_CHARSET,           // nCharSet
     OUT_DEFAULT_PRECIS,        // nOutPrecision
     CLIP_DEFAULT_PRECIS,       // nClipPrecision
     DEFAULT_QUALITY,           // nQuality
     DEFAULT_PITCH | FF_SWISS,  // nPitchAndFamily
     TEXT("黑体"));             // lpszFacename然后   m_stcSpeed.SetFont(&m_fntSpeed);   //m_stcSpeed是Static等控件
      

  4.   

    原来是要在OnPaint()中设置的!
    我原来是在OnInitial()中设置的,没有效果
      

  5.   

    个人觉得 laiyiling(陌生人) ( ) 的方法比较好,不改变字体,直接改变大小。logfont.lfHeight   =   yourheight;其中变量yourheight是你所希望字体的高度