




免费预览已结束,剩余11页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
金刚石图案算法实现说明1、设计要求:总体需求:将半径为r的圆周n等分,用直线将各等分点作隔点相连,形成的图案称为“金刚石”图案。具体要求:1、在MFC环境中建立一个由“文件”、“绘图”和“帮助”这3个菜单项组成的菜单。“文件”的子菜单为“退出”;“绘图”的子菜单为“Diamond”;“帮组”的子菜单为“关于”。2、定义一个输入对话框类,提供两个参数的输入界面。3、在客户区显示金刚石图案。实现效果图如图1-1所示: 图1-1 输入对话框及效果图2、具体步骤:1、 点的设计1) 类视图“ClassView”里选中TestClasses后右击,选择“New Class”,打开“New Class”对话框。2) 在“Class type”中选择“Generic Class”,并在“Name”中输入类名“P2D”,然后单击“Ok”。(到此,在文件视图的“source file”下VC向导自动添加了“P2D.h”和“P2D.cpp”)3) 打开“P2D.h”,作类的初始化定义:添加两个公有数据成员x,y,数据类型均为doulbe。(思考:为什么要设为公有数据成员?)4) 完成P2D类的定义。2、 对话框的设计1) 在资源视图“Resource View”中选择“Dialog”,并右击,选择“Insert Dialog”。2) 在新建对话框内添加静态文本(static text)和编辑框(Edit Box)控件。3) 属性打开(Alt+Enter)。Edit1控件的ID为IDC_EDIT1,并设置取值范围:550;Edit1控件的ID为IDC_EDIT2,并设置取值范围:200500;4) 双击对话框弹出“Adding a Class”对话框,保持默认值,添加一个新类“Create a new class”,单击“Ok”。5) 在弹出的“New class”对话框中填写对话框类名“InputDlg”, 单击“Ok”。(基类是MFC中的CDialog)6) 对话框的设计。在View菜单下选择“MFC Class Wizard”,选中“Member Variables”标签页。7) 修改成员变量的名称和类型。(分点个数)IDC_EDIT1的成员变量名为m_n(double)。(圆的半径)IDC_EDIT2的成员变量名为m_r(double)。单击“Ok”。8) 完成对话框的设计。3、 CtestView类设计1) 数据成员(protected)a) double MaxX,MaxY;b) P2D p50;c) Double n,r;2) 成员函数(public)a) void GetMaxX();b) void GetMaxY();c) void Diamond();3) 利用MFC已经建立的CTestView类,实现金刚石图案的绘制。a) 将数据成员和成员函数添加到CTestView类。在文件视图的“Source Files”下找到“Testview.h”文件并双击打开,分别添加数据成员和成员函数的声明。b) 在“TestView.h”文件中定义P2D的对象数组p50, 并在本文件中添加“P2D.h”头文件。同样,在在“TestView.cpp”文件中调用对话框类,就需要在“TestView.h”里调用对话框类头文件,即添加“#include “InputDlg.h”语句。c) 在文件视图的“Source Files”下找到“TestView.cpp”文件双击打开,添加成员函数的定义。直接添加成员函数(在类视图中添加):void GetMaxX();void GetMaxY();void Diamond();添加宏命令:#include Round(a) int(a+0.5)#include “math.h”#define PI 3.14159264、 菜单设计1) 设置菜单的IDa) 在资源视图“Resource View”上双击“Menu”,打开“IDR_MAINFRAMEN”,修改菜单项。b) 设置子菜单:“退出”的ID: ID_APP_EXIT。“Diamond”的ID: ID_MENUDiamond。“关于”的ID: ID_APP_ABOUT。2) 添加菜单函数子菜单“退出”和“关于”的操作函数系统框架建立时已经提供。主要解决子菜单“Diamond”的操作函数的添加。a) 从主菜单“View”中打开类向导“Class Wizard”;b) 在“Object IDs”中选择“ID_MENUDiamond”、在“Class Name”中选择“CTestView”、在“Message”中选择“command”。c) 单击“Add Functoin”对话框,弹出“Add Member Function”对话框,保持默认菜单成员函数名“OnMEMUDiamond()”,单击“Ok”。d) 在“Member Function”中为菜单“Diamond”添加了操作函数“OnMEMUDiamond()”,该函数是CTestView类的成员函数,系统自动声明。e) 单击“Edit Code”按钮可对OnMEMUDiamond()函数进行编辑。5、 工具条设计1) 在资源视图“Resource View”中,双击“Toolbar”下的“IDR_MAINFRAME”,打开系统框架提供的工具条,将原有的图标全部拖动至图标编辑处予以删除。2) 选中“IDR_MAINFRAME”,右击。在弹出菜单中选择“import”,弹出导入资源对话框。选中导入图标,单击“Edit/Copy”菜单。3) 双击“Toolbar”下的工具条,选中空白图标进行“paste”。4) 双击该图标,弹出“Toolbar Button Properties”对话框,修改其ID号为子菜单“Diamond”的ID,即为ID_MENUDiamond。实现图标与子菜单的关联。“退出”图标的ID: ID_APP_EXIT。“Diamond”图标的ID: ID_MENUDiamond。“关于” 图标的ID: ID_APP_ABOUT。三、相关问题1、输入对话框中缺省值的设定:在InputDlg.cpp文件中添加红色代码。/ InputDlg.cpp : implementation file/ InputDlg dialogInputDlg:InputDlg(CWnd* pParent /*=NULL*/) : CDialog(InputDlg:IDD, pParent)/AFX_DATA_INIT(InputDlg)m_n = 30.0;m_r = 300.0;/AFX_DATA_INIT2、窗口最大化方法在SDI程序中,在Test.cpp中将m_pMainWnd-ShowWindow(SW_SHOW); 改为:m_pMainWnd-ShowWindow(SW_MAXIMIZE);/窗口极大化1.首先新建一个工程:点击“完成”在此处选择Single Document.再继续。在ResorceView选项卡里,Dialog选项中新建“资源”:在新建的Dialog资源对话框中添加如下内容:双击“Dialog”对话框,出现如下界面:点击“OK”并输入如下内容:点击“OK”进入,并且在Member Variables选项卡中,点击右边的Add variable选项卡:设置成功后为:点击“OK”完成。进入Resource view选项卡,点击IDR_MAINFRAME,进入如图所示界面。下一步:在弹出的对话框中设置如下内容:进入classview选项卡,进入如图所示项目:进入如图所示界面,并点击Add and Edit:进入如图所示界面:并点击OK.进入如下界面:在此函数中添加如下内容:下一步:因为我们还缺少如图三个函数。所以在Class View选项卡中选中如图的选项:添加如下内容:并点击OK.在该函数中添加如下内容:同理:在GetMaxY()函数中添加如下内容:在Diamond()函数中添加如下内容:我们要做DiamondView.cpp文件中的首部添加“include “InputDlg.h”.进入如图所示函数:添加如图
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 教师招聘之《幼儿教师招聘》模拟题库讲解附答案详解
- 2025年教师招聘之《小学教师招聘》考前冲刺模拟题库及1套完整答案详解
- 保健食品可持续发展模式创新创业项目商业计划书
- 教师招聘之《幼儿教师招聘》考试黑钻押题附参考答案详解【培优a卷】
- 演出经纪人之《演出经纪实务》题库检测题型及答案详解(全优)
- 2025年教师招聘之《小学教师招聘》通关练习题库包附参考答案详解【综合题】
- 教师招聘之《小学教师招聘》高分题库附参考答案详解(研优卷)
- 教师招聘之《小学教师招聘》押题模拟完整答案详解
- 2025年教师招聘之《幼儿教师招聘》押题练习试卷及参考答案详解【突破训练】
- 2025年四川天府新区党工委管委会工作机构所属事业单位选调10人笔试高频难、易错点备考题库及参考答案
- 二冲程发动机课件
- 2025年国家法律职业资格考试《客观题卷一》模拟题及答案
- 冷板液冷标准化及技术优化白皮书
- 企业科技创新管理办法
- 金融销售技巧培训课件
- 2025届云南中考道德与法治真题试卷【含答案】
- 尿毒症并发心衰的护理
- 电力安全生产法律法规培训
- 国际田径邀请赛行业深度调研及发展项目商业计划书
- 渐冻症患者的麻醉管理要点
- 中医治疗失眠课件
评论
0/150
提交评论