1.MFC文件创建:(1)创建基于对话框的项目,可以直接拖组件;

(2)创建单个文档的项目,所有的时间自己编写。

2.常用画图对象学习

(1)画线:①项目->类向导->选择view类->添加消息->添加鼠标落下OnLButtonDown方法;

②同上添加鼠标松开OnLButtonUp方法;

③同上方法,选择在view类中添加CPoint m_pOrient;  表示鼠标单击时的坐标;

class Cm4View : public CView
{//XXX   系统其余代码
private:CPoint m_pOrigin;  //CPoint是坐标类
}void Cm4View::OnLButtonDown(UINT nFlags, CPoint point)
{c_pOrient = point;  //记录按下点坐标//MessageBox(_T("欢迎")); CView::OnLButtonDown(nFlags, point);  //系统代码
}void Cm4View::OnLButtonUp(UINT nFlags, CPoint point)
{CDC *pDC = GetDC(); //获得设备上下文,才能使用设备pDC->MoveTo(c_pOrient);  //移到起点 //创建画笔对象,注意用完之后换回原来的笔CPen pen = (PS_SOLID,1,RGB(255,0,0));  //PS_DASH虚线、PS_DOT点CPen *pOldPen = pDC->SelectObject(&pen);  //selectObject返回参数的原来类型,保存旧笔pDC.LineTo(point);  //下去的时候,一直会划线pDC.SelectObject(pOldPen);  //换回原来的画笔ReleaseDC(pDC);  //释放设备CView::OnLButtonUp(nFlags, point); //系统自动代码
}

(2) 画矩形

void Cm4View::OnLButtonDown(UINT nFlags, CPoint point)
{c_pOrient = point;  //记录按下点坐标CView::OnLButtonDown(nFlags, point);  //系统代码
}void Cm4View::OnLButtonUp(UINT nFlags, CPoint point)
{CClientDC dc(this); //获得设备上下文,局部变量,不需要释放// 创建画刷,画透明矩形CBrush *brush = CBrush::FormHundle((HBRUSH)GetStockObject(NULL_BRUSH));  //获得系统透明画刷,返回指针CBrush *oldBrush = dc.SelectObject(brush);dc.Rectangle(c_pOrient,point);  //设备从鼠标落下处到松开画透明矩形dc.SelectObject(oldBrush);CBrush brush(RGB(0,255,0));   //新画刷dc.FillRect(CRect(c_pOrient,point),&brush);  //创建带颜色填充矩形CView::OnLButtonUp(nFlags, point); //系统自动代码
}

(3)画扇形,划线跟着鼠标走

class Cm4View : public CView
{//XXX   系统其余代码
private:CPoint m_pOrigin;  //CPoint是坐标类bool m_bDraw = false;  //鼠标是否点击
}
void Cm4View::OnLButtonDown(UINT nFlags, CPoint point)
{c_pOrient = point;  //记录按下点坐标m_bDraw = ! m_bDraw;CView::OnLButtonDown(nFlags, point);  //系统代码
}void Cm4View::OnMouseMove(UINT nFlags, CPoint point)    //添加鼠标移动事件
{CClientDC dc(this); //获得设备上下文,局部变量,不需要释放CPen pen(PS_SOLID, 1, RGB(0, 255, 255));CPen* pOldPen = dc.SelectObject(&pen);  //换画笔线的颜色、类型if(m_bDraw) {dc.MoveTo(m_pOrigin);  //移到第一个点dc.LineTo(point);   //随时point划线m_pOrigin = point; //一定更新起始点}dc.SelectObject(pOldPen);CView::OnLButtonUp(nFlags, point); //系统自动代码
}

(4)画椭圆、文字

void Cm4View::OnLButtonDown(UINT nFlags, CPoint point)
{c_pOrient = point;  //记录按下点坐标CView::OnLButtonDown(nFlags, point);  //系统代码
}void Cm4View::OnLButtonUp(UINT nFlags, CPoint point)
{CClientDC dc(this); //获得设备上下文,局部变量,不需要释放CPen pen(PS_DASH, 1, RGB(0, 0, 255));CPen* pOldpen = dc.SelectObject(&pen);dc.Eclipse(CRect(c_pOrient,point)); //类似矩形画椭圆dc.SelectObject(pOldpen);CFront front; //创建字体对象CString str(_T("Hello world!"));front.CreatePointFont(200,"华文楷体");  //20磅CFront *oldFont = dc.SelectObject(&font);dc.SetTextColor(RGB(0,255,0));dc.TextOut(ponit.x,point.y,str,str.GetLength());  //输出文字,四个参数dc.SelectFont(oldFont); CView::OnLButtonUp(nFlags, point); //系统自动代码
}

卷二:图形编程MFC第1篇:画笔、画刷、相关推荐

  1. Paint 图形绘制 折线 点 弧线绘制 画笔 画刷14.4.20

    // Zuoye1.cpp : Defines the entry point for the application. //#include "stdafx.h" #includ ...

  2. [游戏模版3] Win32 画笔 画刷 图形

    >_<:introduce the functions of define\create\use pen and brush to draw all kinds of line and s ...

  3. VS2019MFC进行无预览简单绘图:直线,画笔,画刷,矩形,椭圆

    1.MFC常用绘图函数 CreatePen 创建画笔:属性:线型.宽度.颜色 CreateSolidBrush 创建画刷,填充封闭图形 SetPixel 绘制像素点,返回RGB值 SetPixelV ...

  4. CSharp代码示例每日一讲: 在GDI+中使用画笔和画刷

    CSharp代码示例每日一讲,为刚刚学习编程的人准备,利用最简单的代码介绍CSharp编程知识! 画笔和画刷是图形应用中最常用的两种对象.笔用于绘制图形对象的轮廓,如线条和曲线;刷子是用来填充图形对象 ...

  5. VS2010/MFC编程入门之五十(图形图像:GDI对象之画笔CPen)

    上一节中鸡啄米讲了CDC类及其屏幕绘图函数,本节的主要内容是GDI对象之画笔CPen. GDI对象 在MFC中,CGdiObject类是GDI对象的基类,通过查阅MSDN我们可以看到,CGdiObje ...

  6. MFC基本图形的绘制(一)设备环境类CDC、画笔和画刷

    Windows的GDI(设备图形接口),提供了绘图的基本工具,如:画点.线.多边形.位图以及文本输出等.MFC的设备环境类CDC封装了全部的绘图函数,使得绘制的图形即可以显示,又可以打印. 概述 Vi ...

  7. python的交互式解释器_python3.4.1解释器python交互式图形编程实例(三)

    本文实例为大家分享了python交互式图形编程实例的第三部代码,供大家参考,具体内容如下 #!/usr/bin/env python3 # -*- coding: utf-8 -*- #时钟 from ...

  8. python图形化编程实例,python交互式图形编程实例(三)

    本文实例为大家分享了python交互式图形编程实例的第三部代码,供大家参考,具体内容如下 #!/usr/bin/env python3 # -*- coding: utf-8 -*- #时钟 from ...

  9. Python创意编程100例turtle篇题目串烧

    海龟变身孙悟空,迷宫寻宝讲相声! 哪吒妙用孙子兵法,世界名人尽赞之.忍者品德好,遇见合金弹头主角时怦然心动了,赠送了他花框音乐盒. 生机勃勃的农场孕育了漂亮的二叉分形树.超级玛丽玩起坦克大战还邀请解& ...

最新文章

  1. 如何在 SAP 电商云 Spartacus UI 里访问 CMS Component data 数据
  2. rxjs pipe和filter组合的一个实际例子的单步调试
  3. 【.NET Core项目实战-统一认证平台】第七章 网关篇-自定义客户端限流
  4. HashMap两种遍历数据的方式
  5. linux系统的安装程序,Linux系统安装
  6. 互联网寒冬!“996”为什么还没实行?我还等着早点下班呢!
  7. Leetcode--128. 最长连续序列
  8. 回来不是为了留下,而是为了重新出发 -- 生死阅读影评
  9. c#利用泛型集合,为自己偷偷懒。
  10. apt-get install的默认安装路径是什么
  11. python不同版本切换_Python版本切换,python,的
  12. Java实现学生管理系统代码
  13. 计算机键盘驱动,修改键盘驱动程序_基本计算机知识_IT /计算机_信息
  14. Java实现视频编码格式转换(转libx264编码格式)
  15. Java中继承thread类与实现Runnable接口的区别(转)
  16. 简单做份西红柿炒蛋778
  17. LiteFlowNet3:解决对应歧义以获得更准确的光流估计
  18. ObiFruid创建流体,ObiFruid学习笔记
  19. mybatis 自定义拦截器
  20. MIMICIV2.0版本Concepts自动生成

热门文章

  1. 5.24黄金短线上涨能否继续做空?今日如何布局
  2. python 声音基频f0_【aubio】音频处理笔记
  3. Java对接微信支付(完整全流程)
  4. Unity2021发布微信小游戏步骤(附带工具和源码)
  5. 从Excel中复制数据
  6. 什么是 API?电商API接口的用处是什么?
  7. 《Java黑皮书基础篇第10版》 第13章【笔记】
  8. 李彦宏先生的第一次直播
  9. 深入理解MySQL索引之B+Tree(转载)
  10. 甲方安全防御体系架构图