我是初学者,编制一个小程序。在视图中按字体对话框中设定的字体、大小、颜色等响应键盘输入并显示字符,可是当窗口最大化和最小化时,它不能保持设定的字体和大小。因为我把重画文本的函数DrawText()放在Doc里,在View::OnChar()函数中给Doc中声明的变量CFont* m_fontDoc赋值,可是总也不正确,可以运行,就是不重画。请问各位有什么高见。也就是在两个CFont类型的变量间如何传值。

解决方案 »

  1.   

    写完以后存入DOC的数组中,在DOC中加一函数,用for来取数组,并进行重画在OnDraw中pDoc->你的重画函数其实你要想看这个效果不用这么费劲在OnPaint中写不就完了吗?
      

  2.   

    一般来讲,DOC类存放数据,VIEW类负责显示,菜单响应的代码可以在MAINFRAME或者VIEW类中,如果想省事一点,你应该重载ONDRAW函数,把所有控制显示的代码放在这个函数里。
        LOGFONT结构的使用应该不难,我想这可能不是重点。
      

  3.   

    建议在文档中用模板类来保存你有字体的所有属性
    CTypedPtrArray<CObArray,Font*>  m_Word;
    m_Word.add(m1);
    在视图中重载OnDraw()
    即可