VISUAL C++ 6.0变幻字体 -问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

VISUAL C++ 6.0变幻字体

2016-02-17 22:20:31 2124 1

在网上找到了这么一段代码,但是怎么用在对话框中?

    //-----------------以下为MyEdit.h---------------------------------------------
    #pragma once
    // CMyEdit
    class CMyEdit : public CEdit
    {
    DECLARE_DYNAMIC(CMyEdit)
    public:
    CMyEdit();
    virtual ~CMyEdit();
    protected:
    DECLARE_MESSAGE_MAP()
    public:
    void SetBackColor(COLORREF rgb);//设置文本框背景色
    void SetTextColor(COLORREF rgb);//设置文本框的字体颜色
    void SetTextFont(const LOGFONT &lf);//设置字体
    COLORREF GetBackColor(void){return m_crBackGnd;}//获取当前背景色
    COLORREF GetTextColor(void){return m_crText;}//获取当前文本色
    BOOL GetTextFont(LOGFONT &lf);//获取当前字体
    private:
    COLORREF m_crText;//字体的颜色
    COLORREF m_crBackGnd;//字体的背景颜色
    CFont m_font;//字体
    CBrush m_brBackGnd;//整个文本区的画刷
    //控件自己的消息反射函数CtlColor,绘制控件之前调用
    afx_msg HBRUSH CtlColor(CDC* pDC, UINT nCtlColor);
    };
    //---------------以下为MyEdit.cpp-------------------------------------------
    #include "stdafx.h"
    #include "MyEdit.h"
    // CMyEdit
    IMPLEMENT_DYNAMIC(CMyEdit, CEdit)
    CMyEdit::CMyEdit()
    {
    //初始化为系统字体和窗口颜色
    m_crText = GetSysColor(COLOR_WINDOWTEXT);
    m_crBackGnd = GetSysColor(COLOR_WINDOW);
    m_font.CreatePointFont(90,"宋体");
    m_brBackGnd.CreateSolidBrush(GetSysColor(COLOR_WINDOW));
    }
    CMyEdit::~CMyEdit()
    {
    }

    BEGIN_MESSAGE_MAP(CMyEdit, CEdit)
    //WM_CTLCOLOR的消息反射
    ON_WM_CTLCOLOR_REFLECT()
    END_MESSAGE_MAP()
    // CMyEdit 消息处理程序
    void CMyEdit::SetBackColor(COLORREF rgb)
    {
    //设置文字背景颜色
    m_crBackGnd = rgb;
    //释放旧的画刷
    if (m_brBackGnd.GetSafeHandle())
    m_brBackGnd.DeleteObject();
    //使用文字背景颜色创建新的画刷,使得文字框背景和文字背景一致
    m_brBackGnd.CreateSolidBrush(rgb);
    //redraw
    Invalidate(TRUE);
    }
    void CMyEdit::SetTextColor(COLORREF rgb)
    {
    //设置文字颜色
    m_crText = rgb;
    //redraw
    Invalidate(TRUE);
    }
    void CMyEdit::SetTextFont(const LOGFONT &lf)
    {
    //创建新的字体,并设置为CEDIT的字体
    if(m_font.GetSafeHandle())
    {
    m_font.DeleteObject();
    }
    m_font.CreateFontIndirectA(&lf);
    CEdit::SetFont(&m_font);
    //redraw
    Invalidate(TRUE);
    }
    BOOL CMyEdit::GetTextFont(LOGFONT &lf)
    {
    if(m_font.GetLogFont(&lf)!=0)
    { return TRUE; }
    return FALSE;
    }
    HBRUSH CMyEdit::CtlColor(CDC* pDC, UINT nCtlColor)
    {
    //刷新前更改文本颜色
    pDC->SetTextColor(m_crText);
    //刷新前更改文本背景
    pDC->SetBkColor(m_crBackGnd);
    //返回画刷,用来绘制整个控件背景
    return m_brBackGnd;
    }
C++
取消 提交回答
全部回答(1)
  • 51干警网
    2019-07-17 18:29:17
    已采纳

    class CMyEdit : public CEdit
    这是派生了一个CMyEdit

    加入这个文件作为源代码

    找到你的对话框,把你的文本框变量类型由CEdit全部修改为CMyEdit

    0 0
相关问答

40

回答

[@徐雷frank][¥20]什么是JAVA的平台无关性

大河人家 2018-10-29 23:55:20 144791浏览量 回答数 40

53

回答

OSS C/C++ SDK分享交流区

否极泰来 2015-06-15 17:05:09 48090浏览量 回答数 53

3

回答

安全狗VS云锁

ap0453m0g 2014-11-09 16:20:00 15603浏览量 回答数 3

10

回答

windows版本oss c sdk如何上传和下载包含中文名的文件

yjseu 2015-11-20 17:14:30 15959浏览量 回答数 10

1

回答

【开源分享】-4期 Notepads 一款国人开发的UWP超好用文本编辑器

montos 2020-05-06 13:34:43 28987浏览量 回答数 1

58

回答

技术入门问答集锦,涉及多种技术方向,解决新人学习困惑

管理贝贝 2016-08-03 10:13:27 52787浏览量 回答数 58

4

回答

上传到OSS的文件md5hash值如何获取?!!

asker 2015-08-05 16:52:10 21312浏览量 回答数 4

38

回答

【论战!】访问压力大,你会选择升级ECS配置or选择再买1台ECS做负载均衡SLB

qilu 2014-12-25 17:32:40 20815浏览量 回答数 38

12

回答

电信云VS阿里云

米蛋 2013-12-13 23:25:52 16003浏览量 回答数 12

23

回答

【云服务器分享】网站访问速度快才是硬道理

dreamdoo 2012-10-15 10:15:02 85409浏览量 回答数 23
+关注
51干警网
阿里云论坛版主,QQ 1978638808
58
文章
9435
问答
问答排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载