基于MFC的简单画图程序实验.doc

基于MFC的简单画图程序实验.doc

ID:48413184

大小:671.00 KB

页数:16页

时间:2020-01-24

基于MFC的简单画图程序实验.doc_第1页
基于MFC的简单画图程序实验.doc_第2页
基于MFC的简单画图程序实验.doc_第3页
基于MFC的简单画图程序实验.doc_第4页
基于MFC的简单画图程序实验.doc_第5页
资源描述:

《基于MFC的简单画图程序实验.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、word格式简单画图程序【实验目的】本实验目的是通过构建基于MFC的windows画图程序,使学生:(1)理解MFC应用程序的运行机制(2)掌握使用MFC构建Windows应用程序的基本结构及编程的基本方法(3)理解和掌握MFC应用程序消息处理机制及应用(4)掌握类向导(ClassWizard)的使用【实验要求】(1)必须做好实验原理的预习。(2)需要对提供的程序代码进行分析,并明确实验时还应在何处添加哪些语句。【实验环境】MicrosoftWindowsXPMicrosoftVisualC++6.01基本功能描述1)在单文档菜单中,在菜单行中可插入一个菜单项,命名为绘图,在下

2、拉菜单中可分别设置绘制的图形形状,如直线、矩形及椭圆,线宽选项,有1-5可供选择,还可以设置线色以及填充色,通过弹出的颜色对话框选择需要的颜色,如果不选择线宽、线色以及填充色,则按默认的画笔,画刷来绘制选择的图形。2)选择好图形后,通过鼠标可以绘制出相应的直线,矩形或椭圆,鼠标的按下确定图形的起点,鼠标的拖动则确定了图形的终点,即通过鼠标的拖动来决定图形的大小,当鼠标弹起,此图形则绘制完毕。3)增添工具栏,设置绘制的图形形状,线色以及填充色,可更方便地选择相应的功能。2设计思路1)对需要用到的变量进行初始化。2)选择相应的图形之后就响应相应的消息处理函数,给shape赋对应的值

3、。选择不同的线宽,线色与填充色,即可改变画笔或画刷的属性。....word格式3)鼠标的按下响应函数OnLButtonDown(),捕捉鼠标当前位置得到起点的坐标,鼠标的拖动响函数OnMouseMove()改变终点的坐标,鼠标的弹起响应OnLButtonUp(),确定终点坐标,刷新,得到绘制图形。4)选择图形或其它属性,可进行下一次绘制。开始定义并初始化变shape线色m_ncolor填充色m_fcolor画笔pen画刷brush绘图起点opoint绘图终点cpoint选择线宽默认值(w=1)改变画笔属性选择线色默认值(黑色)改变画笔属性选择填充色默认值(黑色)改变画刷属性椭圆

4、矩形直线响应函数OnEllipse()shape=3响应函数OnLine()shape=1响应函数OnRect()shape=2....word格式鼠标左键按下响应函数OnLButtonDown()opoint=point鼠标移动响应函数OnMouseMove()epoint=point响应OnPaint(),绘制图形鼠标左键弹起响应函数OnLButtonUp()刷新,得到图形结束图1程序流程图3软件设计3.1设计步骤1)创建单文档创建一个MFCAppWizard[exe]工程,命名为“yinshuyan”,如图2所示,并创建单文档,如图3所示。创建成功后,系统自动生成相应的类

5、,如图4所示。图2创建工程....word格式图3创建单文档图4生成类2)编辑菜单添加需要的菜单项,如图5所示(可以通过拖动调整菜单的顺序);并在菜单的属性中设定好所对应的ID,如图6所示,各项菜单对应的ID如表1所示(其中线宽菜单为弹出菜单,只需在菜单项目属性中的弹出选项前打勾即可,分隔线亦只需在菜单项目属性中选中分隔符(Separator)选项即可)。....word格式图5添加菜单项图6设置菜单ID表1菜单项对应ID菜单名ID菜单名ID直线ID_LINE线宽1ID_W1矩形ID_RECT线宽2ID_W2椭圆ID_ELLIPSE线宽3ID_W3颜色ID_COLOR线宽4ID

6、_W4填充色ID_FILLCOLOR线宽5ID_W5建立类向导,在视图类CyinshuyanView(通过菜单View->ClassWizard,或者快捷键Ctrl+w打开)中,对各菜单项添加对应的COMMAND消息处理函数,部分菜单项还添加对应的UPDATE_COMMAND_UI消息函数,如图7所示。....word格式图7建立类向导【注意:此图有误,Classname的下拉框中,应选择“CyinshuyanView”而非此图显示的“CMainFrame”】上述操作完成后,可以发现在ClassCMainFrame中自动增加了类似OnLine()之类的许多函数,并且在源文件Ma

7、inFrm.cpp中,自动添加了相应的消息映射。BEGIN_MESSAGE_MAP(CMainFrame,CFrameWnd)//{{AFX_MSG_MAP(CMainFrame)ON_WM_CREATE()ON_COMMAND(ID_LINE,OnLine)……END_MESSAGE_MAP()3)创建工具栏在插入处选择资源(菜单Insert->Resource,或者快捷键Ctrl+R),新建工具栏,如图8所示;....word格式图8新建工具栏在工具栏上添加相应的按钮,在属性处更改其ID

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。