25.1 绘图软件的绘制原理

纯虚函数:抽象函数,强制在派生类中进行实现;
虚函数:有函数体,可在基类也可在派生类中实现。
基类CLayer

class CLayer
{//抽象类
public:CLayer();~CLayer();virtual void OnDraw(CDC* pDC) = 0;virtual void OnLButtonDown(UINT nFlags, CPoint point)=0; //纯虚函数,在派生类中具体实现//virtual void OnLButtonUp(UINT nFlags, CPoint point);//virtual void OnMouseMove(UINT nFlags, CPoint point);
};

派生类Cline

class CLine :    public CLayer
{CPoint m_start, m_end;void OnDraw(CDC* pDC);void OnLButtonDown(UINT nFlags, CPoint point);
public:CLine();~CLine();
};
void CLine::OnDraw(CDC * pDC)
{pDC->MoveTo(m_start);pDC->LineTo(m_end);
}
void CLine::OnLButtonDown(UINT nFlags, CPoint point)
{m_start = point;
}
CLine::CLine():m_start(0,0),m_end(0,0)
{}
CLine::~CLine()
{}

派生类CRecta

class CRecta :public CLayer
{CRect m_rect;void OnLButtonDown(UINT nFlags, CPoint point);void OnDraw(CDC* pDC);
public:CRecta();~CRecta();
};void CRecta::OnLButtonDown(UINT nFlags, CPoint point)
{m_rect.TopLeft() = point;
}
void CRecta::OnDraw(CDC * pDC)
{pDC->Rectangle(m_rect);
}
CRecta::CRecta():m_rect(0,0,0,0)
{}
CRecta::~CRecta()
{}

派生类CEllipse

class CEllipse :public CLayer
{CRect m_rect;void OnDraw(CDC* pDC);void OnLButtonDown(UINT nFlags, CPoint point);
public:CEllipse();~CEllipse();
};void CEllipse::OnDraw(CDC * pDC)
{pDC->Ellipse(m_rect);
}void CEllipse::OnLButtonDown(UINT nFlags, CPoint point)
{m_rect.TopLeft() = point;
}CEllipse::CEllipse():m_rect(0,0,0,0)
{}CEllipse::~CEllipse()
{}

25.2 绘图软件的绘制过程

25.3 图层选中状态控制

26.1 图层拖动过程控制

26.2 绘图软件的文字录入控制

26.3 绘图软件的文字选取控制

26.4 绘图软件的文字颜色控制

从任务栏去掉窗口

ModifyStyleEx(WS_EX_APPWINDOW, WS_EX_TOOLWINDOW);//从任务栏中去掉.

【MFC系列-第25、26天】绘图软件相关推荐

  1. 【MFC系列-第8天】小型软件项目开发

    第8天 小型软件项目开发 8.1 记事本开发 小技巧:用VC6新建工程,以资源方式打开系统自带notepad.exe中的MENU资源,加入到自己新建的工程中:然后再添加到VS工程中,即可获取现有exe ...

  2. 演示:为思科25/26系列的路由器升级IOS镜像

    IOS是思科路由器和交换机的操作系统,也是思科网络设备的灵魂,完整名称Internet OperatingSystem 取其各个英文单词的首字母故得名IOS.如果说是思科的路由器或交换机功能的强大,不 ...

  3. MFC实现简易绘图软件

    本篇文章实现了使用MFC实现简易的绘图软件.本来想说一下具体的实现方法与思路的,因为这时之前做的,现在看起来写的真的太烂了,简直是不忍卒读,所以有兴趣的自己下载源码回去看吧.基本上是使用鼠标拖动来绘制 ...

  4. 如何基于MFC制作简易绘图软件

    本文将讲解如何通过MFC制作一个简易的绘图软件 文章目录 一.构造软件的界面 二.画出图形 三.图形的保存与重绘 四.程序下载 一.构造软件的界面 首先新建一个MFC的工程,进入之后按F5调试,可以看 ...

  5. QT5系列教程二---基于qcustomplot的QT5 GUI串口收发绘图软件实现

    QT5系列教程二---基于qcustomplot的QT5 GUI串口收发绘图软件实现 结构 UI部分 代码部分 step1:实现串口数据接受 串口接受数据格式 在`.pro`文件中添加`serialp ...

  6. 简单绘图软件实现mfc大作业_生产流程图怎么做?简单易上手的流程图工具

    生产流程图是什么呢?首先,生产流程指的是在生产的过程中,劳动者通过利用一定的生产设备或工具,将各种原材料.半成品投入,按照一定顺序进行加工,最终得到成品产出的整个过程.而生产流程图则是使用图表符号的形 ...

  7. stm32 isp下载官方软件android_OpenCanvas免费版下载_OpenCanvas绘图软件官方版下载7.0.25...

    OpenCanvas 是一款小巧的CG手绘软件,让用户在使用数位板在电脑上绘图时,就像是在纸上手绘一样,可以画出极为细致的图像.OpenCanvas功能简捷.体积小巧.运行速度快,大家可以很快上手,非 ...

  8. 统计绘图软件--SYSTAT SigmaPlot

    统计绘图软件,它可以轻松地制作精美的二维与三维图形,图形效果远远超过SPSS统计软件.它还可以进行快速图形变换,提供了多种图形模板,并且可以用html的文件格式输出.此外它也具有一般统计分析软件的功能 ...

  9. 基于PythonGUI的图形学系统绘图软件

    目录 一. 综述 1 完成的内容(额外功能为加粗部分) 1 二. 算法介绍 3 DDA 3 bresenham 4 3.中点椭圆 5 4.bezier 绘制曲线 6 5.B-Spline 绘制曲线 7 ...

最新文章

  1. Lisp-1和Lisp-2
  2. javascript工具类(util)-持续更新
  3. github上星星1万多的python教程推荐收藏
  4. linux编译项目的命令,Linux用make指令编译进度条程序
  5. 蓝牙信号强度检测app_基于蓝牙技术的智能插座方案
  6. Windows XP SP3支持多用户远程桌面连接
  7. python 发送邮件附件及文字信息
  8. 北大程序设计实习MOOC 编程作业 《魔兽世界之二:装备》
  9. fetch ajax cros,由 Fetch 跨域 看 CORS
  10. “命令终端”的实现2-字符读取及按键控制
  11. excel离散度图表怎么算_怎么在excel中计算散点图的公式
  12. 前端JS-页面延迟刷新
  13. DataFrame实现两表连接
  14. ubuntu22.04 在笔记本上切换核显驱动出现的字体模糊或屏幕模糊现象的解决方法
  15. linux打开cd驱动器命令,在Linux中,如何挂载cdrom
  16. 《特别推荐》10套精美的免费网站后台管理系统模板
  17. even parity
  18. BDA的技能体系有点太滞后了
  19. 从JavaScript看字符编码的前世今生!
  20. 多串口服务器的DCS485多主机通讯

热门文章

  1. Spring 3.2 @ControllerAdvice批注的异常处理
  2. 在Spring容器外部连接对象依赖项
  3. 如何在Jetty中使用SPDY
  4. Java不是文明语言吗?
  5. Spring&Quartz集成自定义注释
  6. 【WebRTC---入门篇】(十)NAT
  7. python输出结果为none_python的reverse函数翻转结果为None的问题
  8. 如何优雅地检测类型/表达式有效性?
  9. 淮安中专学计算机哪个学校好,2021淮安初中十强排名 哪些初中比较好
  10. 电脑的发展史_互联网发展史 硅谷传奇之 IBM