我使用的平台是VS2010,可以自动生成一个记事本,但不能修改字体颜色和背景颜色,希望各位大虾多多指教,完成我这个小小心愿

解决方案 »

  1.   

    你好,我对MFC编程还不是很熟悉,能详细点,一步一步来吗
      

  2.   

    背景颜色可以用 FillRect 填充
    字体颜色可以设置画笔 CPen
      

  3.   

    http://hi.baidu.com/lyjwq/blog/item/be2a567f410091f90ad187be.html
      

  4.   

    已经完成一下代码,是不是还需要跟什么关联起来,才能改变记事本编辑框里面的字体颜色
    void CNotepadView::OnFont()
    {
    // TODO: 在此添加命令处理程序代码
    CFontDialog dlg;
    if(IDOK == dlg.DoModal())
    {
    if(m_font.m_hObject)//句柄判断资源对象
    {
    m_font.DeleteObject();
    }//释放m_font与字体资源的联系
    m_font.CreateFontIndirect(dlg.m_cf.lpLogFont);//m_font与某一种字体资源关联
    m_strFontName = dlg.m_cf.lpLogFont->lfFaceName;//lfFaceName存放字体的名称
    Invalidate();//该函数让窗口无效,这样当下亿次发生WM_PAINT消息时,窗口就回进行重绘
    }
    }
      

  5.   

    除了知道CRichEditCtrl还必须加系统的FontDialog等才能完整,很麻烦的.
      

  6.   

            LOGFONT lf;             //设置打开字体对话框的默认字体
    CFont *font=this->GetEditCtrl().GetFont();//得到当前视图字体
    if(font==NULL) //当前无字体,创建默认的字体
    {
    font =new CFont;
    font->CreatePointFont(120,"Fixedsys");
    font->GetLogFont(&lf); //初始化LOGFONT
    delete font;
    }
    else
    {
    font->GetLogFont(&lf); //初始化LOGFONT
    } CFontDialog cf(&lf);
    if(cf.DoModal()==IDOK)
    {
    this->m_Font.DeleteObject(); this->m_Font.CreateFontIndirect(&lf);
    this->SetFont(&this->m_Font);
    }