C++面向对象简易图形编辑器

2018-12-23 23:24

山东大学(威海)机电与信息工程学院

2011级

面向对象编程技术 实验五实验报告

班 级: 学 号: 姓 名:

时 间:2013-12-01

山东大学(威海)机电与信息工程学院

2011级

目 录

1 实验要求 ....................................................................................................................................... 1 A、基本功能要求 ............................................................................................................................ 1 B、高级要求 .................................................................................................................................... 1 2 实验过程及结果 ........................................................................................................................... 1

2.1 交互式绘制图形 ............................................................................................................... 1 2.2 绘制直线 ........................................................................................................................... 1 2.3 绘制矩形 ........................................................................................................................... 2 2.4 绘制椭圆 ........................................................................................................................... 3 2.5 输入文本 ........................................................................................................................... 4 2.6 文本保存 ........................................................................................................................... 6 2.7 文本读取 ........................................................................................................................... 7 3 实验总结 ....................................................................................................................................... 8 附录 关键代码 ................................................................................................................................. 8 一、主CPP ...................................................................................................................................... 8 二、 附CPP .................................................................................................................................. 22 三、 头文件 ................................................................................................................................... 28

I

面向对象编程技术实验报告

1 实验要求

A、基本功能要求

1. 交互式绘制图形(至少包括线、矩形和文本),绘制完成的图形能够正确地重现 2. 绘制结果可以正确持久化(存储到文件、从文件中读出)//

3. 最终交付的工程中至少包含两个源文件(.cpp文件,即除主程序外,将部分函数分离到

单独的源文件)、一个rc文件 B、高级要求 用“椭圆”1. 线、矩形、文本的颜色(线色和填充色)、文本字体可调。 绘制 2. 能够通过鼠标点击选中图形,并进行属性的修改,修改的内容可包括:

? 位置 ? 大小 ? 颜色 ? 线型

? 字体(对应文本图元而言)

3. 能够删除选中的图形

2 实验过程及结果

2.1 交互式绘制图形

此次绘制图形的程序和例程中EasyDraw不同,相比后者,本程序的绘制是建立在结构体数组的基础上的。绘制结果完全可以满足实验要求。

效果图如下:

2.2 绘制直线

首先定义一个直线的结构体数组

1

面向对象编程技术实验报告

struct MySaveLine // 直线保存 { POINT ptS; POINT ptE; COLORREF color; int penWidth; int penStyle; };

绘制直线的函数如下: void DrawMyLine(HDC hdc) // 绘制直线 { HPEN hPen; HPEN hPenOld; int j; for(j=0;j

2.3 绘制矩形

首先定义一个矩形的结构体数组 struct MySaveRectangle // 矩形保存 { POINT ptS; POINT ptE; COLORREF color; HBRUSH hNewBrush; int brushColor; int penWidth; int penStyle; };

绘制矩形的函数如下:

void DrawMyRectangle(HDC hdc) // 绘制矩形 { int j; HBRUSH hOldBrush; HPEN hPen;

2

面向对象编程技术实验报告

HPEN hPenOld; for(j=0;j

hPenOld = (HPEN)SelectObject(hdc, hPen); switch (pDrawData->iSelectionBrush) { case IDM_BRUSH_WHITE: case IDM_BRUSH_LTGRAY: hOldBrush = (HBRUSH)SelectObject (hdc, GetStockObject(SaveRectangle[j].brushColor));

break; case IDM_BRUSH_COLORSOLID: case IDM_BRUSH_CROSS: hOldBrush = (HBRUSH)SelectObject (hdc, SaveRectangle[j].hNewBrush); break; } Rectangle (hdc, SaveRectangle[j].ptS.x,SaveRectangle[j].ptS.y, SaveRectangle[j].ptE.x, SaveRectangle[j].ptE.y); SelectObject(hdc, hPenOld); DeleteObject(hPen); SelectObject(hdc, hOldBrush); } }

2.4 绘制椭圆

首先定义一个椭圆的结构体数组 struct MySaveEllipse // 椭圆保存 { POINT ptS; POINT ptE; COLORREF color; HBRUSH hNewBrush; int brushColor; int penWidth; int penStyle; };

绘制椭圆的函数如下:

void DrawMyEllipse(HDC hdc) // 绘制椭圆 { int j; HBRUSH hOldBrush; HPEN hPen;

3


C++面向对象简易图形编辑器.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:计算机基础

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: