1、 简单画图程序 1 基本功能描述 1) 在单文档菜单中,在菜单行中可插入一个菜单项,命名为绘图,在下拉菜单中可 分别设置绘制的图形形状,如直线、矩形及椭圆,随手画选项,有 1-5 可供选择,按默认 的画笔,画刷来绘制选择的图形。 2) 选择好图形后,通过鼠标可以绘制出相应的直线,矩形或椭圆,鼠标的按下确定 图形的起点,鼠标的拖动则确定了图形的终点,即通过鼠标的拖动来决定图形的大小,当 鼠标弹起,此图形则绘制完毕。 2 设计思路 1) 对需要用到的变量进行初始化。 2) 选择相应的图形之后就响应相应的消息处理函数。选择不同的线宽,即可改变画笔 的属性。 3) 鼠标的按下响应函数 OnLButto
2、nDown(),捕捉鼠标当前位置得到起点的坐标,鼠标 的拖动响函数 OnMouseMove()改变终点的坐标,鼠标的弹起响应 OnLButtonUp(),确定终 点坐标,刷新,得到绘制图形。 4) 选择图形或其它属性,可进行下一次绘制。 3 软件设计 3.1 设计步骤 1)创建单文档 创建一个 MFC AppWizardexe工程,命名为“draw” , ,并创建单文档。创建成功后, 系统自动生成相应的类。 2)编辑菜单 添加需要的菜单项,并在菜单的属性中设定好所对应的 ID, (其中线宽菜单为弹出菜 单,只需在菜单项目属性中的弹出选项前打勾即可,分隔线亦只需在菜单项目属性中选中 分隔符选项即
3、可) 。 建立类向导,在视图类 CdrawView 中,对各菜单项添加对应的 COMMAND 消息处 理函数,部分菜单项还添加对应的 UPDATE_COMMAND_UI 消息函数, 。 建立类向导 在插入处选择资源,新建工具栏, 在工具栏上添加相应的按钮,在属性处更改其 ID, 4)在相应消息函数处添加代码,实现其功能 建立类向导,在视图类 CdrawView 中,添加 WM_PAINT 消息,以及 WM_LBUTTONDOWN、WM_LBUTTONUP、WM_MOUSEMOVE 消息,并在其中添加相 应的代码。 3.3 关键功能实现 1)选择要绘制的图形 在直线、矩形以及椭圆的消息处理函数里
4、为 shape 分别赋值为 1,2,3,在 OnPaint()函 数里添加 3 个 if 语句的代码来这实现这三个图形的绘制:当选择画直线时,shape=1,则 执行绘制直线代码,当选择画矩形时,shape =2,则执行绘制矩形的代码,当性选择画椭圆 时,shape=3,则执行绘制椭圆的代码。 5)绘制图形 鼠标左键按下,则捕获鼠标此时的位置坐标为画图的起点,此时在 OnLButtonDown() 函数里,将捕获的坐标值赋给定义作为起点的变量 opoint;按下鼠标左键拖动鼠标时,捕 捉鼠标当前位置坐标值为终点坐标值,此时在 OnMouseMove()函数里,把捕获的坐标值赋 给定义作为终点的变量 cpoint,OnPaint()中绘图的代码中的坐标都得到了,进行绘图;鼠 标左键弹起时,此时绘图结束,鼠标弹起时所在位置就是画图的最终终点位置,画图结束 后,刷新窗口,以便重新画图,此时执行的是 OnLButtonUp()函数。 4 结论与心得体会 这次课程设计我成功的完成了。通过本次课程设计,我完成了用移动鼠标对直线,矩 形,椭圆的简单绘制工具的的制作,其中完成了绘图形状的选择