简单画图程序
【实验目的】
本实验目的是通过构建基于MFC的windows画图程序,使学生: (1) 理解MFC应用程序的运行机制
(2) 掌握使用MFC构建Windows应用程序的基本结构及编程的基本方法 (3) 理解和掌握MFC应用程序消息处理机制及应用 (4) 掌握类向导(ClassWizard)的使用 【实验要求】
(1) 必须做好实验原理的预习。
(2) 需要对提供的程序代码进行分析,并明确实验时还应在何处添加哪些语句。 【实验环境】
Microsoft Windows XP Microsoft Visual C++ 6.0
1 基本功能描述
1) 在单文档菜单中,在菜单行中可插入一个菜单项,命名为绘图,在下拉菜单中可分别设置绘制的图形形状,如直线、矩形及椭圆,线宽选项,有1-5可供选择,还可以设置线色以及填充色,通过弹出的颜色对话框选择需要的颜色,如果不选择线宽、线色以及填充色,则按默认的画笔,画刷来绘制选择的图形。 2) 选择好图形后,通过鼠标可以绘制出相应的直线,矩形或椭圆,鼠标的按下确定图形的起点,鼠标的拖动则确定了图形的终点,即通过鼠标的拖动来决定图形的大小,当鼠标弹起,此图形则绘制完毕。
3) 增添工具栏,设置绘制的图形形状,线色以及填充色,可更方便地选择相应的功能。
2 设计思路
1) 对需要用到的变量进行初始化。
2) 选择相应的图形之后就响应相应的消息处理函数,给shape赋对应的值。选择不同的线宽,线色与填充色,即可改变画笔或画刷的属性。 1
3) 鼠标的按下响应函数OnLButtonDown(),捕捉鼠标当前位置得到起点的坐标,鼠标的拖动响函数OnMouseMove()改变终点的坐标,鼠标的弹起响应OnLButtonUp(),确定终点坐标,刷新,得到绘制图形。 4) 选择图形或其它属性,可进行下一次绘制。 开
定义并初始化shape
线m_ncolor填充pem_fcolor画bruscpoint绘图终opoin 选择线
改变画笔属默认值w=
选择线
改变画笔属默认(黑色
默认值(黑色改变画刷属
直矩椭
响应函数 响应函数 响应函数OnLine() OnRect() OnEllipse() shape=1 shape=2 shape=3
2
OnLButtonDown()响应函数鼠标左键按下 poinopoin
OnMouseMove()epoint=point响应函鼠标移OnPaint(,绘制图响 OnLButtonUp()
鼠标左键弹起响应函刷新,得到图
结束
程序流程图图1
3 软件设计 3.1 设计步骤 1)创建单文档所示,并创建单文2”,
如图工程,命名为“创建一个MFC AppWizard[exe]yinshuyan 所示。所示。创建成功后,系统自动生成相应的类,如图档,如图34
2 图创建工程 3
创建单文档图3
4 生成类图 2)编辑菜单;并在菜单的属性所示(可以通过拖动调整菜单的顺序)添加需要的菜单项,如图5所示(其中线宽菜单为弹1如表,如图ID6所示,各项菜单对应的ID中设定好所对应的出菜单,只需在菜单项目属性中的弹出选项前打勾即可,分隔线亦只需在菜单项目属性中 。)选项即可)选中分隔符(Separator
4
添加菜单项图5
ID 6 设置菜单图ID 1 菜单项对应表 菜单名 直线 矩形 椭ID_圆颜色 填充色 LINE ID_RECT ID_ELLIPSE ID_COLOR ID_FILLCOLOR IDID菜单ID_W1线1 ID_W2线2ID_W33线ID_W44线ID_W5线5
,或者快捷键(通过菜单View->ClassWizardCyinshuyanView建立类向导,在视图类消息处理函数,部分菜单项还添加COMMANDCtrl+w打开)中,对各菜单项添加对应的 所示。消息函数,如图对应的UPDATE_COMMAND_UI7 5