BOOL CProductSaleDlg::OnInitDialog()
{
CDialog::OnInitDialog(); // TODO:  在此添加额外的初始化
CFont *font1=new CFont();
font1->CreateFont(22,0,0,0,100,FALSE,FALSE,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,FF_SWISS,"黑体");
GetDlgItem(IDC_STATIC_PRODUCTSALE2)->SetFont(font1,1);
    delete font1;
    return TRUE;  // return TRUE unless you set the focus to a control
// 异常: OCX 属性页应返回 FALSE
}请看一下GetDlgItem(IDC_STATIC_PRODUCTSALE2)->SetFont(font1,1);没起作用

解决方案 »

  1.   

    delete font1;  你又把字体删除了 当然不管事儿了
      

  2.   

    无须new呀!这样就行。BOOL CProductSaleDlg::OnInitDialog()
    {
    CDialog::OnInitDialog();// TODO: 在此添加额外的初始化
    CFont font1;
    font1.CreateFont(22,0,0,0,100,FALSE,FALSE,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,FF_SWISS,"黑体");
    GetDlgItem(IDC_STATIC_PRODUCTSALE2)->SetFont(font1,1);
      return TRUE; // return TRUE unless you set the focus to a control
    // 异常: OCX 属性页应返回 FALSE
    }
      

  3.   

    也不行,CEdit就行,就是CStatic不行
      

  4.   

    这样吧,你不要用静态文本了,直接在OnPaint里边DrawText出来,用将字体设置到DC里边。我是这样做的!
      

  5.   

    我感觉你的方式不太对:
    应该创建一个CFont的对象来Create
    CFont NewFont;
       NewFont.CreateFont
    然后GetDlgItem(IDC_STATIC_PRODUCTSALE2)->SetFont(&NewFont);即可另外,你那个  delete font1 是神马意思,选回设备描述表?好像不是这样用的,应该如下吧:
    CFont font;
    font.CreatePointFont(150,"华文新魏",NULL);
    CFont *pFold=dc.SelectObject(&font);    //格式,呵呵
    dc.SelectObject(pFold);    //选回设备描述表
      

  6.   

    CFont *font1;改为类变量试试