兄弟是新手,使用如下代码可以使ft得到CFontDialog选择的字体信息么?
CFont ft;
CFontDialog fDlg;
LOGFONT lf;
if(fDlg.DoModal()==IDOK)
{
  fDlg.GetCurrentFont(&lf);
  ft.GetLogFont(&lf);
}

解决方案 »

  1.   

    CFont ft;
    CFontDialog fDlg;
    LOGFONT lf;
    if(fDlg.DoModal()==IDOK)
    {
      fDlg.GetCurrentFont(&lf);
      ft.CreateFontIndirect(&lf);
    }
    至于颜色什么的用fDlg.GetColor()
      

  2.   

    检查是哪行代码出错的,是DoModal的问题吗?
      

  3.   

    ft.GetLogFont(&lf);
    换成
    ft.Attach(&lf);
    试试?
      

  4.   

    CFontDialog fontdlg(&lf,CF_EFFECTS | CF_SCREENFONTS, NULL, NULL);fontdlg.m_cf.rgbColors=color;color 字体的颜色
      

  5.   

    CFont ft;
    CFontDialog fDlg;
    LOGFONT lf;
    if(fDlg.DoModal()==IDOK)
    {
      fDlg.GetCurrentFont(&lf);
      ft.CreateFontIndirect(&lf);
    }
    这样写会出错?不会吧?你再试试.我试过了,没有啊
    使用的时候就SetFont(&ft):
      

  6.   

    就是在ft.CreateFontIndirect(&lf);的时候出的错,我的ft是CMyView中定义的CFont,应该不会与这个有关吧。
      

  7.   

    我晕,不可能吧,你重新建一个工程看看.
    要不你到[email protected]问我要一份,我写了一个
      

  8.   

    LOGFONT lf;
    COLORREF clr;
    CFontDialog dlg;
    if (dlg.DoModal() == IDOK)
    {
    memcpy(&lf, dlg.m_cf.lpLogFont, sizeof(LOGFONT));
    clr = dlg.GetColor();
    }
      

  9.   

    sanshui_yangfei(阿飞) 问题解决了吗?
      

  10.   

    解决了,谢谢,就是没有Detach,我在view构造函数里createfont了,所以ft里已经有东西了