我用SetFont()改变字体大小,程序运行后可以生效,但是文字都处于选中状态,一旦取消选中状态,文字又变回原来大小,但光标的大小没有变回去,请问如何解决,问题可能出在哪?void CTextEditView::OnDraw(CDC* pDC)
{
CTextEditDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
CFont fonttext;
fonttext.CreateFont(m_FontSize*20,0,0,0,400,FALSE, FALSE, 0,
                        ANSI_CHARSET, OUT_DEFAULT_PRECIS,
                        CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY,
                        DEFAULT_PITCH | FF_SWISS, NULL);
CFont* pOldFont = (CFont*) pDC->SelectObject(&fonttext);

SetFont(&fonttext);

UpdateWindow();}

解决方案 »

  1.   

    CFont fonttext;//定义为类的成员变量,不能是函数的局部变量
    fonttext.createfont(...);
    CEdit.SetFont(...);
    你修改的字体对象不对
      

  2.   

    我还想问一下,我设计了一个Button,每按一次,字体会放大一定比例。也就是调用上面这个函数,现在我把CreateFont写在这个函数内,第二次调用为什么或出错。
      

  3.   

    需要先删除以前的对象
    if ((HFONT)fonttext)
          fonttext.DeleteObject();
    fonttext.createfont(...);
    CButton.SetFont(...);