我的程序是基于MFC对话框编程的,我在对话框中拖了很多个静态文本控件,并且改了我想要显示的名字,但是我现在想要在程序中实现让静态文本中的字体在程序运行时显示要变的大几倍,怎么做呀?
我用CFont类创建了一个对象,再用这个对象去调用CreateFont()函数来创建,最后用文本对象来调用Setfont函数,始终达不到我想要的效果....可能是我不知道该具体怎么设置CreateFont()函数参数,那个MSDN上面我也看过了哈!
我仅仅想要字体大几倍,那个字体类型的话,可以不设置。希望大神们给点意见呀代码呀神马滴! 感激不尽。

解决方案 »

  1.   

    那你就别用静态文本控件了,直接用Textout或者DrawText在对话框上写不就行了
      

  2.   

    CMyStatic::CMyStatic()
    {
    // create a font
    m_pFont=NULL;
    //
    LOGFONT  lf;
    memset(&lf,0,sizeof(LOGFONT));
    lf.lfHeight = 32; // request a 12-pixel-height font
    lf.lfCharSet=SYMBOL_CHARSET;// must !!! strcpy(lf.lfFaceName,("Marlett"));//
    m_pFont=new CFont;
    if(!m_pFont->CreateFontIndirect(&lf)) 
    {// create err 
    m_pFont=NULL;
    }
    }CMyStatic::~CMyStatic()
    {
    if(m_pFont) delete m_pFont;
    }
    //
    void CMyStatic::PreSubclassWindow() 
    {
    // TODO: Add your specialized code here and/or call the base class
    if(m_pFont) SetFont(m_pFont);

    CStatic::PreSubclassWindow();
    }
      

  3.   

    Setfont是可以的,可能你创建的字体不对,代码贴出来看看!
      

  4.   

    我的代码是:
    CFont f;
    f.CreateFont(20,
           0,
           0,
           0,
           FW_BOLD,
           TRUE,
           FALSE;
           0,
           ANSI_CHARSET,
           OUT_DEFAULT_PRECIS,
           CLIP_DEFAULT_PRECIS,
           DEFAULT_QUAITY,
           DEFAULT_PITCH | FF_SWISS,
           _T("Arial")
    )m_labelPatientName.SetFont(&f);
    m_labelPatientName这个是多个静态文本中的一个对象。