码迷,mamicode.com
首页 > 其他好文 > 详细

学习:单选框和多选框

时间:2020-02-07 15:12:52      阅读:100      评论:0      收藏:0      [点我收藏+]

标签:rgb   重写   mamicode   多选   实现   pre   repo   保存   ima   

实现颜色与图形变换的例子:

/*
D:\Visual_Studio_repos\MFC\2*/
void CMFCApplication2Dlg::OnBnClickedCheck3()
{
    Invalidate(); //重写绘图,会调用OnEraseBkgnd事件
}
BOOL CMFCApplication2Dlg::OnEraseBkgnd(CDC* pDC)
{
    // TODO: 在此添加消息处理程序代码和/或调用默认值

    bool ret =  CDialogEx::OnEraseBkgnd(pDC);
    
    //定义颜色变量
    int rgb_red, rgb_green, rgb_blue;
    
    rgb_red = chk_red.GetCheck() ? 255 : 0;
    rgb_green = chk_green.GetCheck() ? 255 : 0;
    rgb_blue = chk_blue.GetCheck() ? 255 : 0;

    COLORREF m_Color = RGB(rgb_red, rgb_green, rgb_blue);

    CBrush brush;
    CBrush *OldBrush;

    brush.CreateStockObject(m_Color);
    OldBrush = pDC->SelectObject(&brush); //保存默认的的画刷, 之后进行恢复,作用避免内存泄露
    RECT rect = {50,20,200,180};

        //绘图
    if (r_rect.GetCheck()) {
        pDC->Rectangle(&rect);
    }
    else {
        pDC->Ellipse(&rect);
    }
    
    pDC->SelectObject(OldBrush); //恢复老的画刷,避免内存泄露
    return ret;
}

技术图片

学习:单选框和多选框

标签:rgb   重写   mamicode   多选   实现   pre   repo   保存   ima   

原文地址:https://www.cnblogs.com/zpchcbd/p/12272846.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!