本程序是在VC6.0平台上用MFC所编。绘制方面的功能主要包括绘制各种图元,包括直线、矩形、椭圆、连续线、橡皮擦。绘图时可以选择各种颜色,各种线型和线宽。软件支持保存和读取图形。
该软件设计的设计思想是面向对象程序设计的思想。 面向对象技术是一个非常实用而强有力的软件开发方法。与其它具有许多特色相比。一是程序的可维护性好,二是程序的易修改性好。三是对象可以使用多次。
1
第一章 设计要求及流程
1.1设计目的
设计一个单文档类型的MFC工程,工程取名为:Wdraw。此程序将实现简单的绘图功能,包括点、直线、矩形、椭圆、橡皮擦和连续线的绘制。并且能实现绘图的控制,包括线宽、线型、橡皮擦和颜色的设置,图形的保存和打开以及笔刷的使用及添加文字等功能。
1.2 总体流程图
流程图如图1.1

图1.1
2
第二章 简易画图板的制作
首先,新建一个单文档类型的MFC AppWizard (exe)工程,工程取名为:Wdraw。为此程序添加一个子菜单,菜单名称为“绘图”,并为其添加六个菜单项,分别用来控制不同图形的绘制。当用户选择其中的一个菜单项后,程序将按照当前的选择进行相应图形的绘制。添加的五个菜单项的ID及名称如表2-1所示。然后分别为这五个菜单项添加命令响应,本程序让视类(CWdrawView)对这些菜单命令进行响应,
表2-1添加的菜单项
在程序运行以后,当用户单击某个菜单项时,应该把用户的选择保存起来,以便随后的绘图操作使用。因此在CWdrawView类中添加一个私有变量m_nDrawType;用来保存用户的选择,该变量的定义如下所述:
private: UINT m_nDrawType;
接着,在视类的构造函数中将此变量初始化为0,程序代码如下:
CWdrawView::CWdrawView()
{
// TODO: 在此添加命令处理程序代码m_nDrawType=0;
}
利用switch/case语句,来分别完成相应图形的绘制。当用户选择【绘图】菜单下的不同子菜单项时,将变量m_nDrawType设置为不同的值。程序代码如下:
void CWdrawView::OnDot()
{
// TODO: 在此添加命令处理程序代码 m_nDrawType=1; 3
}
void CWdrawView::OnLine()
{
}
void CWdrawView::OnRectangle()
{
}
void CWdrawView::OnEllipse()
{
}
}
void CWdrawView::OnLianxuxian()
{
} // TODO: 在此添加命令处理程序代码 m_nDrawType=6; // TODO: 在此添加命令处理程序代码 m_nDrawType=4; // TODO: 在此添加命令处理程序代码 m_nDrawType=3; // TODO: 在此添加命令处理程序代码 m_nDrawType=2;
2.1 点、直线、矩形、椭圆的绘制
对于直线、矩形和椭圆,在绘制时都可有两点来确定其图形。当鼠标左击时得到一个点,当鼠标左键松开时得到另外一个点。为视类CWdrawView分别捕获鼠标左键按下和弹起这两个消息。另外当鼠标左键按下时,需要将鼠标当前按下点保存,因此我们为CWdrawView再增加一个CPoint类型的私有成员变量:m_ptOrigin,在视类的构造函数中将此变量初始化为0。在鼠标按下保存该点,代码如下:
void CWdrawView::OnLButtonDown(UINT nFlags, CPoint point)
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-23014-2.html
进入十二海里就应该给他们予以打击
特别棒咯