• MFC-CBrush画刷


    VS2012

    CBrush类

    三种画刷-颜色画刷、阴影画刷、图案画刷

    消息

    WM_CTLCOLOR

    1、对话框

    2、代码

    hpp
    
    protected:
        //定义画刷
        CBrush m_brush;
        CBitmap m_bmp;
    
    
    
    
    cpp
    
    OnInitDialog()//对话框初始化
        //先加载位图
        m_bmp.LoadBitmap(IDB_BK);
    
    
    //对话框添加WM_CTLCOLOR消息
    /*
        绘制对话框和控件外观
    */
    HBRUSH CDemoDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
    {
        HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);
    
        // TODO:  在此更改 DC 的任何特性
    
        // TODO:  如果默认的不是所需画笔,则返回另一个画笔
        if (m_brush.GetSafeHandle() && nCtlColor == CTLCOLOR_DLG)//如果是对话框就用新的画刷
            return m_brush;
        else//如果是其他的就用原来的画刷
            return hbr;
    }
    
    
    /*
        获取下拉控件选择的值
    */
    void CDemoDlg::OnCbnSelchangeCombo1()
    {
        // TODO: 在此添加控件通知处理程序代码
    
        //如果有旧的画刷就删掉
        if (m_brush.GetSafeHandle())
        {
            m_brush.DeleteObject();
        }
    
        switch (m_cmb_brush.GetCurSel())
        {
        case 0:
            //创建颜色画刷
            m_brush.CreateSolidBrush(RGB(200,200,255));//指定背景颜色
            break;
        case 1:
            //创建阴影画刷
            m_brush.CreateHatchBrush(HS_DIAGCROSS,RGB(255,0,0));//指定阴影样式和颜色
            break;
        default:
            //创建位图画刷
            m_brush.CreatePatternBrush(&m_bmp);//指定图片
            break;        
        }
        //失效擦除背景重画
        Invalidate(TRUE);
    }
    
    Caesar卢尚宇
    2021年1月16日

     

     3、演示

    Caesar卢尚宇

    2021年1月16日

    作者: 阿飞

    出处: https://www.cnblogs.com/nxopen2018/>

    关于作者:......

    如有问题, 可在底部(留言)咨询.

  • 相关阅读:
    Android Sqlite 增删改查
    Android SQLiteOpenHelper Sqlite数据库升级onUpgrade
    Android SQLiteOpenHelper Sqlite数据库的创建与打开
    Android Xml,PullParser,解析
    Android Xml文件生成,Xml数据格式写入
    Android Studio生成get,set,tostring,构造方法
    Android SharedPreference
    Android 文件模式
    Android 权限的由来
    C++ essentials 之 union
  • 原文地址:https://www.cnblogs.com/nxopen2018/p/14287841.html
Copyright © 2020-2023  润新知