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);
}

效果

MFC更换画笔(画刷)颜色以及画眼睛(GDI画图)的更多相关文章

  1. C# GDI绘图之——画笔和画刷

    绘制图形需要画笔和画刷: Pen(画笔类): Pen为C#编程语言中专门的画笔类 使用方式: // 用系统颜色来初始化我们的画笔类,使用Color静态类中的颜色 1. Pen p1 = new Pen ...

  2. GDI+编程(画笔/画刷/路径/区域)

    构造Graphics对象 Graphics类是GDI+程序设计的核心,Graphics类能够完成大部分的绘图,文本输出,几何图形的填充及坐标系统的转换等各种操作.在功能上,它与GDI的设备环境(DC) ...

  3. WPF样式之画刷结合样式

    第一种画刷,渐变画刷GradientBrush (拿线性渐变画刷LinearGradientBrush(其实它涵盖在GradientBrush画刷内.现在拿他来说事.),还有一个圆心渐变画刷Radia ...

  4. 《WPF程序设计指南》读书笔记——第2章 基本画刷

    1.Color结构 using System; using System.Windows; using System.Windows.Input; using System.Windows.Media ...

  5. Sliverlight之 画刷

    1,5种画刷 (见Project15) (1)TextBlock控件中的Forground和BackGround属性是一个什么对象?它在前台的完整的写法是什么?(实际是.net做了一个转换,可以直接写 ...

  6. c# gdi设置画刷透明

    使用solidBrush新建画刷,定义画刷的颜色为透明色 Brush b = new SolidBrush(Color.FromArgb(50, Color.Green)); 这里的50是透明度的设置 ...

  7. c# 如何设置透明画刷

    使用solidBrush新建画刷,定义画刷的颜色为透明色 Brush b = new SolidBrush(Color.FromArgb(50, Color.Green)); 这里的50是透明度的设置 ...

  8. 【WPF学习】第四十章 画刷

    画刷填充区域,不管是元素的背景色.前景色以及边框,还是形状的内部填充和笔画(Stroke).最简单的画刷类型是SolidColorBrush,这种画刷填充一种固定.连续的颜色.在XAML中设置形状的S ...

  9. WPF设计の画刷(Brush)

    一.什么是画刷 画刷是是一种渲染方式,用于填充图形形状,如矩形.椭圆.扇形.多边形和封闭路径.在GDI+中,画刷分为以下几种:SolidBrush,TextureBrush,HatchBrush,Li ...

随机推荐

  1. tensorflow 1.0 学习:模型的保存与恢复(Saver)

    将训练好的模型参数保存起来,以便以后进行验证或测试,这是我们经常要做的事情.tf里面提供模型保存的是tf.train.Saver()模块. 模型保存,先要创建一个Saver对象:如 saver=tf. ...

  2. 【Guava】使用Guava的RateLimiter做限流

    一.常见的限流算法 目前常用的限流算法有两个:漏桶算法和令牌桶算法. 1.漏桶算法 漏桶算法的原理比较简单,请求进入到漏桶中,漏桶以一定的速率漏水.当请求过多时,水直接溢出.可以看出,漏桶算法可以强制 ...

  3. 全能系统监控工具dstat

    一.什么是dstat? 通过man帮助,可以看到官方对dstat的定义为:多功能系统资源统计生成工具( versatile tool for generating system resource st ...

  4. [MySQL]增加约束键

    增加约束键 ALTER TABLE Persons ADD UNIQUE (P_Id) 创建表时加入约束键 CREATE TABLE Persons ( P_Id int NOT NULL, Last ...

  5. eclipse中打断点debug无效

    今天在测试的时候,发现在eclipse中打了断点,debug居然无效.结果是因为我无意开启了另一个功能,Run-->Skip All Breakpoints (忽略所有的断点) 快捷键:Ctrl ...

  6. Angular2入门:TypeScript的模块

    一.export 二.import 三.模块的默认导出

  7. Python 的反射机制

    什么叫做反射 利用字符串的形式去对象(模块)中操作(查找/添加/获取/删除)成员,一种基于字符串的事件驱动. 可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型.然后,可以 ...

  8. ARM 汇编指令 DCD

    简介 DCD:数据定义( Data Definition )伪指令 一般用于为特定的数据分配存储单元,同时可完成已分配存储单元的初始化. 语法格式: 标号 DCD(或 DCDU) 表达式 DCD(或 ...

  9. C#中saveFileDialog(另存为)保存图片文件

    弹出另存为提示框保存图片文件: //用户自由选择指定路径保存文件            SaveFileDialog savedialog = new SaveFileDialog();        ...

  10. 重装MacOS

    从U盘启动 开启或重新启动您的 Mac 后,立即按住 Option 键。 当您看到“启动管理器”窗口时,松开 Option 键。 选择您的启动磁盘,然后点按箭头或按下 Return 键。 Mac 的启 ...