zoukankan      html  css  js  c++  java
  • MFC更换画笔(画刷)颜色以及画眼睛(GDI画图)

    MFC画眼睛###

    换画笔(画刷)颜色(参考链接:https://blog.csdn.net/sunxiving/article/details/51272001)

    • 由于画笔一旦创建后就无法修改。所以要修改画笔的颜色要用DeleteObject()函数将其删除​,之后再创建新的画笔
    • 例子:换为白色
        CBrush brush, *oldBrush;//创建画刷
    	brush.CreateSolidBrush(RGB(0,0,0));//原来为黑色
    	oldBrush=pDC->SelectObject(&brush);
    	pDC->Ellipse(0,0,200,100);//画一个椭圆
    	brush.DeleteObject();//删掉原来brush
    
    	brush.CreateSolidBrush(RGB(255, 251, 240));//更改颜色
    	oldBrush=pDC->SelectObject(&brush);//重新选取
    	pDC->Ellipse(50,0,150,100);//再画一个颜色不同的
        pDC->SelectObject(oldBrush);//还回画刷
    

    没有参考代码,尝试自己画一波眼睛简图

    • 只给出OnDraw(CDC* pDC)函数。
    void CJustPaintView::OnDraw(CDC* pDC)//paint an eye
    {
    	CJustPaintDoc* pDoc = GetDocument();
    	ASSERT_VALID(pDoc);
    	// TODO: add draw code for native data here
    
    	CRect rect;
    	GetClientRect(&rect);
    	pDC->SetMapMode(MM_ANISOTROPIC);
    	pDC->SetWindowExt(rect.Width(), rect.Height());
    	pDC->SetViewportExt(rect.Width(), -rect.Height());
    	pDC->SetViewportOrg(rect.Width()/2, rect.Height()/2);
    	rect.OffsetRect(-rect.Width()/2, -rect.Height()/2);//erweizuobiaoxi
    
    	CBrush brush, *oldBrush;
    	brush.CreateSolidBrush(RGB(0,0,0));
    	oldBrush=pDC->SelectObject(&brush);
    	pDC->Ellipse(0,0,200,100);
    	brush.DeleteObject();
    
    	//change color of brush
    	brush.CreateSolidBrush(RGB(255, 251, 240));
    	oldBrush=pDC->SelectObject(&brush);
    	pDC->Ellipse(50,0,150,100);
    	brush.DeleteObject();
    
    	//change color of brush
    	brush.CreateSolidBrush(RGB(0,0,0));
    	oldBrush=pDC->SelectObject(&brush);
    	pDC->Ellipse(50,25,150,75);
    	brush.DeleteObject();
    
    	//change color of brush
    	brush.CreateSolidBrush(RGB(255,0,0));
    	oldBrush=pDC->SelectObject(&brush);
    	pDC->Ellipse(75,25,125,75);
    	pDC->SelectObject(oldBrush);
    }
    

    效果

  • 相关阅读:
    Docker 系列(四):Docker 容器数据卷简单使用
    【QML 动态对象】使用JS中的语句动态创建和销毁组件
    【QML 动态对象】Loader动态加载组件
    vue-cli2.0全局使用sass变量
    两边+居中 布局
    跳转子路由后左侧菜单跳转为空白页,路由地址出错
    el-tree可搜索单选
    el-tree固定高度加滚动条
    前端 权限控制 方式
    综合分析类
  • 原文地址:https://www.cnblogs.com/yocichen/p/9629197.html
Copyright © 2011-2022 走看看