标签: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