我想做一个记事本类似的小程序,在ClassWizard的最后一步继承的是CEditorView这个基类,我想通过调用CFontDialog和CColorDialog这两个对话框来改变文本区中字体的大小和字体颜色,请问该怎样实现呢?

解决方案 »

  1.   

    如果是记事本、而且是从CEditView中继承的View类的话,是不能设置颜色的,字体有可能能设置,但是也不能保存,也就是说不能保留文本格式(只能保留文本),如果想要保留格式,只能从CRichEditView类继承你的View然后在你的View用CHARFORMAT2定义一个变量,它是一个结构,能够设置其中的参数进行字体、大小、颜色设置,然后用SetCharFormat(CHARFORMAT2 …)命令就可以了————这是在RichEditView中
      

  2.   

    要改变颜色就处理WM_CTRLCOLOR消息
      

  3.   

    我尝试了在WM_CTRLCOLOR消息中加入pDC->setTextColor(RGB(255,0,255)).但是没有效果。
    一楼的是不是说要继承RichEditView这个基类才能改变文本区中的字体颜色和大小呢?我不要求保存字体的颜色和大小,只要能在客户区更改就行了。
      

  4.   

    这个函数是有系统(Frame)调用的,只有在控件初始化中有效,即不能随意改变其文字的颜色(我根据MSDN中的Res是这么理解的),而且是不是对CEditView有效,我就不知道了
      

  5.   

    而且像SetFont()之类的函数,在CEditView中,一设置字体,则所有文字的字体都会同时变化,不能单独改变某些文字的颜色和字体,如果你要求是这样,那就无所谓了