C面向对象简易图形编辑器概要1
面向对象编程技术
实验五实验报告
班 级:
学 号:
姓 名:
时 间:2013-12-01
目 录
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
实验要求
A、基本功能要求
交互式绘制图形(至少包括线、矩形和文本),绘制完成的图形能够正确地重现
绘制结果可以正确持久化(存储到文件、从文件中读出)//
最终交付的工程中至少包含两个源文件(.cpp文件,即除主程序外,将部分函数分离到单独的源文件)、一个rc文件
B、高级要求
线、矩形、文本的颜色(线色和填充色)、文本字体可调。
能够通过鼠标点击选中图形,并进行属性的修改,修改的内容可包括:
位置
大小
颜色
线型
字体(对应文本图元而言)
能够删除选中的图形
实验过程及结果
交互式绘制图形
此次绘制图形的程序和例程中EasyDraw不同,相比后者,本程序的绘制是建立在结构体数组的基础上的。绘制结果完全可以满足实验要求。
效果图如下:
绘制直线
首先定义一个直线的结构体数组
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;jMAX;j++)
{
hPen = CreatePen(SaveLine[j].penStyle, SaveLine[j].penWidth, SaveLine[j].color);
hPenOld = (HPEN)SelectObject(hdc, hPen);
MoveToEx(hdc, SaveLine[j].ptS.x, SaveLine[j].ptS.y, NULL);
LineTo(hdc, SaveLine[j].ptE.x, SaveLine[j].ptE.y);
SelectObject(hdc, hPenOld);
DeleteObject(hPen);
}
}
绘制矩形
首先定义一个矩形的结构体数组
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;
HPEN hPenOld;
for(j=0;jMAX;j++)
{
hPen = CreatePen(SaveRectangle[j].penStyle, SaveRectangle[j].penWidth, SaveRectangle[j].color);
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);
您可能关注的文档
- BWDSP汇编入门概要1.pptx
- buzz marketing概要1.ppt
- byron she walks in beauty 美与媚概要1.ppt
- Business travel概要1.pptx
- Business Meals概要1.pptx
- Butterfly概要1.ppt
- by example of Kevin Carter’s tragedy最终版概要1.ppt
- Butterfly tie蝴蝶结英文介绍PPT概要1.ppt
- B站80分答案06月16日概要1.doc
- B班蓝鸽平台第一次作业概要1.doc
- 2025年全国演出经纪人员资格认定考试试卷带答案(研优卷).docx
- 2025年全国演出经纪人员资格认定考试试卷完整版.docx
- 2025年全国演出经纪人员资格认定考试试题库及完整答案.docx
- 2025年全国演出经纪人员资格认定考试试卷完美版.docx
- 2025年全国演出经纪人员资格认定考试试卷含答案(实用).docx
- 2025年全国演出经纪人员资格认定考试试卷及答案(各地真题).docx
- 2025年下半年内江市部分事业单位公开考试招聘工作人员(240人)备考题库附答案.docx
- 2025年全国演出经纪人员资格认定考试试卷及答案1套.docx
- 2025年下半年四川成都市郫都区面向社会引进公共类事业单位人员2人备考题库最新.docx
- 2025年下半年内江市部分事业单位公开考试招聘工作人员(240人)备考题库附答案.docx
最近下载
- 准噶尔盆地南缘山前带石油地质综合评价.pdf VIP
- 2012届松江区高三英语二模试卷.doc VIP
- 2012奉贤区高三二模英语含答案.doc VIP
- 云南大学博士、硕士研究生学位论文写作规范-2025.docx VIP
- 2008学年奉贤区调研测试高三英语试卷及答案.doc VIP
- 最新人教版六年级上册数学1-8单元单元测试卷及期中期末卷(含答案).pdf VIP
- [黄浦区2009学年度第一学期期终基础学业测评高三英语附答案.doc VIP
- 2025至2030中国C反应蛋白(CRP)试验行业产业运行态势及投资规划深度研究报告.docx
- 2009学年奉贤区调研测试高三英语试卷(附答案).doc VIP
- 噬神者:爆裂 怪物素材获取方法.pdf VIP
原创力文档

文档评论(0)