GetDlgItem(XXX)->SetFont();
这句话放到什么位置呢? 如2楼所说的放到OnInitDialog()?

解决方案 »

  1.   


    GetDlgItem(XXX)->SetFont();
    这句话放到什么位置呢? 如2楼所说的放到OnInitDialog()?
      

  2.   


    试了下,不行啊。 
    代码如下:CFont font;
    font.CreateFont(
       48,                        // 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_TEST)->SetFont(&font,TRUE);
      

  3.   

    不清楚你代码怎么写,干脆CFont font;定义为类成员吧。
      

  4.   

    在OnCtlColor函数中使用CreateFont函数新建字体???当初了这个函数,字体就销毁了,可是这时候还没画呢,也就是时机不对。字体改为成员,OnInitDialog中创建,OnCtlColor中选中
      

  5.   

    在OnInitDialog中设置字体及大小:
    CFont *m_font=new CFont;
    m_font->CreatePointFont(300,_T("华文楷体"));
    GetDlgItem(IDC_STATIC)->SetFont(m_font);
      

  6.   

    楼主,7,8,9楼上说的对,该CFont font;需要定义成类的成员变量。然后在OnInitDialog();
    里面SetFont().
      

  7.   

    非常感谢,解决了, 但还有个问题想问一下,如果这样操作的话,比如说我的5个控件都需要改变颜色,改变为不同的字体,是不是要新建5个CFont对像呢? 
      

  8.   

    可以新建5个CFont对象,但是在每次设置完字体后,记得要font.DeleteObject(); 防止内存泄露。还有你的5个IDC_STATIC控件ID名字不能相同。
      

  9.   


    还有几个问题想请教一下,我在对话框中拖了2个文本控件,ID分别为IDC_TEST1、IDC_TEST2,我在OnInitDialog中新建了CFont对像,代码如下:CFont* pfont = new CFont;
    CFont* pfont1 = new CFont;
    pfont->CreatePointFont(220,_T("楷体"));
    GetDlgItem(IDC_TEST)->SetFont(pfont,TRUE);
    pfont->DeleteObject();pfont1->CreatePointFont(220,_T("隶书"));
    GetDlgItem(IDC_TEST)->SetFont(pfont1,TRUE);
    pfont1->DeleteObject();结果是字体颜色可以改,但文字的大小及样式不能改,如果将绿色代码注释掉,文字的大小及样式又可以更改,请问是怎么回事啊?如果不注释掉会不会导致内存泄露?
      

  10.   

    楼主好啊,我现在不能修字体的大小代码如下:
    在OnInitDialog()中 m_font->CreatePointFont(300,_T("华文楷体"));
     GetDlgItem(IDC_SHOW_IMAGE1)->SetFont(m_font,TRUE); 
    在OnBnClickedFeatureMatch()中选中,然后输出
    CClientDC dc1(this);
    CString XY = " ";
    dc1.SelectObject(m_font);
    TextOut(hDC_Image1,descriptors1[i].x(),descriptors1[i].y(),XY,2);
    但是现在仍不能改变字体,求助
      

  11.   

    求改变颜色怎么实现  Orz