Wi
dows程序设计实验报告
实验一:绘图和绘钟实验二:简易扫雷程序班级:姓名:学号:班内序号:时间:201454
f一、实验要求:
实验一:绘图和绘钟
利用MFC类编写wi
dows程序,实现基本绘图功能,并在课堂所讲绘图功
能上新加入自己其他的绘图功能。
二、实验概述:
①由于前期一直坚持听课,所以实现基本绘图功能的代码是按照老师的架构
来做的,后来新加的功能是参阅孙鑫所著的《VC深入详解》一书,在理解的
基础上添加到之前的程序框架中的。做实验时先从课堂上讲的建立单文档开始,
在熟悉了MFC单文档的程序框架后,按照老师给的画简单图形的代码,并对应
自己借的书籍,了解了画图代码的编写。之后又逐步进行了改进,增加了更多其
他的功能。
②利用MFC编写绘图和绘钟的程序是在VisualStudio2013的环境下编写的;
③绘钟程序采取的是简洁风格,先绘制了表盘,之后用数学方法绘制钟表盘
小格。利用I
validate函数刷新钟表区域,利用SetTimer函数来对指针进行刷新。
点击显示后再次点击即可关闭时钟。
④线型线宽的设置中,增加了单选框和示例框,线型的选择中由于线型定义
中对应08,所以就按照顺序排列线型,从而减去了switchcase语句。点击单选
框后利用I
validate函数让窗口无效,在下一次WM_PAINT时重绘窗口,示例
框线条在O
Pai
t函数中绘制。
f⑤绘图所能实现的功能有:1能够实现图片文件和位图文件的打开;2可以将所绘制图形以位图形式保存;3以对话框形式实现对线型线宽的设置;4设置八种线型,增加示例框,能在选择时预览;5增加画图面板滚动条,能上下左右拉动绘图区域;6实现图形重绘功能,在拉动或最小化图形窗口以及滚动区域后图形不消失,
实现了对所绘矩形,椭圆,线条和扇形的重绘;7以系统自带对话框形式实现对颜色及字体的修改;8画图功能:直线,曲线,椭圆,扇形,带边界的扇形,位图填充的矩形,可
遮挡的空心矩形;⑥绘钟所能实现的功能有:1实现闹钟功能,以对话框形式设置响铃时间;2能够绘制出模拟时钟,并获取正确的系统时间;3能够实现秒针每一秒移动一下的动画效果;4时钟下边以数字时钟的方式显示当前系统时间;
f三、代码分析1整体代码分为三部分:①窗口绘图:用于绘制各种图形(包括直线,曲线,扇形等);
②绘图设置:用于颜色,字体和线型线宽的设置等;
f③绘制时钟:绘制与系统时间同步的模拟时钟。
2设计流程:
根据基本功能描述,绘图程序有3个功能模块组成,其中图形绘制模块在鼠标r