我用子类的方法改变CStatic的字体。
我从CStatic派生出一个子类,
应该重写那个函数OnPain?OnCreate?Creat?
直接调用SetFont方法吗?

解决方案 »

  1.   

    重载OnctrlColor函数也行  setFont也行
      

  2.   

    我在派生类里面OnPain里面调用了SetFont但是没有作用。
    后来边文字都显示不了。
      

  3.   

    如果你ownerdraw了,也要在drawtext时使用setfont.
      

  4.   

    在OnPaint内就可以了,
    void C**Static::OnPaint()
    {
    CPaintDC dc(this); // device context for painting
    CFont * pOldFont = dc.SelectObject(新建字体);
    GetDlgItem(指定控件的ID值)->SetFont(m_pFont);

    dc.SelectObject(m_pFont);
    }
      

  5.   


    但事先不知道控件的ID,能不能用this?
      

  6.   

    原来只是在OnPaint里加上setfont就行了,但是vc生成的代码把基类的OnPaint()函数注释掉了。把这个函数取消注释就行了。