- 1、本文档共24页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
中南大学数学院大三年级面向对象实验报告中南大学数学院大三年级面向对象实验报告
面向对象程序设计
学 号 姓 名 学 院 班 级
面向对象程序设计实验
一.实验项目名称:简单画图程序
二.实验目的:
1) 在菜单,绘制的图形形状,如直线、矩形及椭圆,线宽,有1-5可供选择,还可以线色以及填充色,通过弹出的颜色对话框选择需要的颜色,如果不选择线宽、线色以及填充色,则按默认的画笔画刷来绘制选择的图形。
2) 选择好图形后,通过鼠标可以绘制出相应的直线,矩形或椭圆,鼠标的按下确定图形的起点,鼠标的拖动则确定了图形的终点,即通过鼠标的拖动来决定图形的大小,鼠标弹起,此图形则绘制完毕。
3) 增添工具栏,绘制的图形形状线色以及填充色,可更方便地选择相应的功能。 1) 对需要用到的变量进行初始化。
2) 选择相应的图形之后就响应相应的消息处理函数,给shape赋对应的值。选择不同的线宽,线色与填充色,即可改变画笔或画刷的属性。
3) 鼠标的按下响应函数LButtonDown(),捕捉鼠标当前位置得到起点的坐标,鼠标的拖动响函数MouseMove()改变终点的坐标,鼠标的弹起响应LButtonUp(),确定终点坐标,刷新,得到绘制图形。MFC AppWizard[exe]工程,命名为“yinshuyan”,如图1所示,并创建单文档,如图2所示。创建成功后,系统自动生成相应的类,如图3所示。
图2 创建工程
图3 创建单文档
图4 生成类
编辑菜单
添加需要的菜单项,如图4所示;并在菜单的属性中设定好所对应的ID,如图5所示,各项菜单对应的ID如表1所示(其中线宽菜单为弹出菜单,只需在菜单项目属性中的弹出选项前打勾即可,分隔线亦只需在菜单项目属性中选中分隔符选项即可)。
图5 添加菜单项
图6 设置菜单ID
表1 菜单项对应ID
菜单名 ID 菜单名 ID 直线 ID_LINE 线宽1 ID_W1 矩形 ID_RECT 线宽2 ID_W2 椭圆 ID_ELLIPSE 线宽3 ID_W3 颜色 ID_COLOR 线宽4 ID_W4 填充色 ID_FILLCOLOR 线宽5 ID_W5
建立类向导,在视图类CyinshuyanView中,对各菜单项添加对应的COMMAND消息处理函数,部分菜单项还添加对应的UPDATE_COMMAND_UI消息函数,如图6所示。
图7 建立类向导
3)创建工具栏
在插入处选择资源,新建工具栏,如图7所示;
图8 新建工具栏
在工具栏上添加相应的按钮,在属性处更改其ID,如图8所示。
图9 编辑工具栏
4)在相应消息函数处添加代码,实现其功能
建立类向导,在视图类CyinshuyanView中,添加WM_PAINT消息,以及WM_LBUTTONDOWN、WM_LBUTTONUP、WM_MOUSEMOVE
图10 添加WM_PAINT消息
4.2 界面设计
各控件名称,类型,属性及相关变量如表2所示。
表2 界面控件表
控件名称 控件类型 属性 相关变量 绘图 下拉式菜单 无 无
直线 菜单项
工具栏按钮
ID_LINE
int shape
矩形 菜单项
工具栏按钮
ID_RECT
int shape 续表2 界面控件表
控件名称 控件类型 属性 相关变量
椭圆 菜单项
工具栏按钮
ID_ELLIPSE
int shape 线宽 弹出式菜单 无 int w
颜色(线色) 菜单项
工具栏按钮 ID_COLOR
COLORREF m_nColor
填充色 菜单项
工具栏按钮
ID_FILLCOLOR
COLORREF m_fColor
4.3 关键功能实现
1)选择要绘制的图形
在直线、矩形以及椭圆的消息处理函数里为shape分别赋值为1,2,3,在OnPaint()函数里添加3个if语句的代码来这实现这三个图形的绘制:当选择画直线时,shape=1,则执行绘制直线代码,当选择画矩形时,shape =2,则执行绘制矩形的代码,当性选择画椭圆时,shape=3,则执行绘制椭圆的代码。
2)改变线宽
在OnPaint()创建的画笔中,pen.CreatePen(PS_SOLID,w, m_nColor),线宽处用w表示,则改变w的值即改变了画笔的粗细。选择菜单绘图→线宽选择划线宽度值,此时所选的线宽值就赋给线宽变量w。若不选择线宽值,则w=1(即默认线宽值为1)。
3)改变线色
在OnPaint()创建的画笔中,pen.CreatePen(PS_SOLID,w, m_nColor),线的颜色处用m_nColor表示,则
您可能关注的文档
- 世联考题世联考题.doc
- 世联西安莱安逸境项目价值分析世联西安莱安逸境项目价值分析.ppt
- 世说新语 《咏雪》课件世说新语 《咏雪》课件.ppt
- 世阳初中八年级语文期中测试题(袁明)世阳初中八年级语文期中测试题(袁明).doc
- 丘疹性荨麻疹的症状与治疗丘疹性荨麻疹的症状与治疗.doc
- 丙泊酚对新生鼠大脑皮层神经元存活及凋亡的影响丙泊酚对新生鼠大脑皮层神经元存活及凋亡的影响.pdf
- 丘成桐中学数学奖参赛论文丘成桐中学数学奖参赛论文.pdf
- 世邦魏理仕商业服务部招商推广讲义世邦魏理仕商业服务部招商推广讲义.pdf
- 业代工作职责业代工作职责.ppt
- 业余2011级高专英语一班安琪17号业余2011级高专英语一班安琪17号.doc
文档评论(0)