欢迎来到天天文库
浏览记录
ID:33579388
大小:207.78 KB
页数:3页
时间:2019-02-27
《基于mfc用户界面设计主子对话框数据的传递new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、万方数据第18卷第6期2005年11月机电产品开崖与钐j新Developmem&InnDvmlondrnachln。q&el枷砌pmducbV0l18N06Nov2005基于MFC用户界面设计主、子对话框数据的传递杨刚(陕西理工学院计算机系,陕西汉中723003)摘要:在基于MFc的用户界面设计中,一个对话框常常拥有多个子对话框。这时就需要把主对话框中用户输入的数据正确地传递到该对话框的每个子对话框中去。如何完成这个任务是程序设计中的一个难点。笔者引进了多个全局变量.顺利地解决了这种问题。关键词:MFc;对话框;objec出Rx中图分类号:TN919文献标识码:A文章编号:1002
2、—6673(2005)06—098—02O引言对话框是Windows应用程序中最重要的用户界面元素之一,它具有良好的视觉效果,操作方便、直观,是与用户交互的重要手段。在Windows环境下对AutoCAD进行开发时,可以采取ObiectARx与MFC混合编程,即在0biecLARx中使用VisuaIc++6.O中的MFc(Micr080nFoundationC1ass)类库来创建对话框。当一个应用程序有主、子对话框时,主对话框中输人的数据常常需要被传送到它的子对话框中去。本文以笔者设计的圆柱三通管的CAD系统为例,介绍一种通过引入全局变量的方法来实现其功能。1圆柱三通管的CAD系统
3、简介在Aut0CAD环境下,以0biecLARX为开发工具,以c++为编程语言,建立一个界面友好的参数化圆柱三通管的CAD系统。该系统的主对圈l主对话框话框和子对话Fjg.1maindj矗l哩b“框分别如图1、图2所示。此系统的运行过程如下:在图1对话框中输入一组数据,然后再选择“拾取点”,接着点击“合理性检验”按钮,按提示修改输入的参数,直到点击“合理性检验”按钮时出现的提示为:“输人数据正确,请继续以下的操作。”收捕日期:2005—05-25作者简介:扬刚(1973一),男.陕西洋县人.讲师。主要研究方向:计算机图形学厦辅助设计。接着点击按钮“三通管的三视图”,出现如图2所示的
4、子对话框,再选择出图比例,点击按钮“绘制三视图”,便可看到绘制的三视图,点击回车键,围2子对话框再次出现主对话框,接着盹0ch眦出柚09box点击按钮“三通管的展开图”,出现类似画三视图时的子对话框,再选择出图比例,点击“绘制展开图”按钮,便绘出所设计的圆三通管的展开图。2主、子对话框问的数据的传递在系统的运行过程中,需要把主对话框中用户输人的圆柱三通管参数L1、L2、”、D1、D2、a、t以及“拾取点”x、Y的坐标值传递到它的子对话框中,这样系统才能绘制出与输人参数相应的圆柱三通管的零件工作图和展开图。(1)引入的全局变量。引人的全局变量如下所示://为主、子对话框的传递编辑框中
5、的数据而定义工程文件的全局变量double8;//传送数据adoubleD1;//传送数据D1doubleD2;//传送数据D2doubleL1;//传送数据L1d伽bleL2;//传送数据L2d叫bleL3;//传送数据L3doublet;//传送数据tdoublexPl;//传送数据xPldoubIeYPt;//传送数据YPI(2)全局变量的定义和其在主对话框文件中的使用。引入的全局变量的定义必须放在恰当的文件中。在此实例中,这些全局变量的定义应放在主对话框的实现文万方数据制造业信息化件:YuaIlZHusanToIlgDlg.cpp中,具体的位置应在包含文件和条件编译之后,而
6、在所有成员函数之外,这样我们才可以在此文件的成员函数中使用它们。例如此文件的成员函数std“g-t0_Real(),此函数的作用是将子对话框中输入的构件参数的类型由字符型转化为实型数据,并把此数据保存到引入的全局变量中。、voidcYuaIlzHusallTon庐lg=:stri“u啦e血O//辅助变量8dsjeda—a;//将编辑框中的字符值变为实数,并放于辅助变量和全局变量中acdbDisTOF(ⅡLcunAEdil,一l,&a_a);acdbDisTOF(nLcunDlEdlt,一l,&D1);8cdb删slbF(m锄D2Edjf,一l,&陀)iacdbDisToF(m—cu
7、nLlEdll,一l,&L1);acdbDisTOF(rn_cunL2Edit,一l,&L2);acdbDisToFfrr∽un”EdIt,一1,&L3);acdbDlsToF(m—cur佃d叱一1,&n;acdbDisToF(In-cunxPtE出t,一1,&X蹦;acdbDlsToF(rn_cunYnEdit,一1,&YPo;a=a_a+PL/180;}同时还应在控件“三通管的三视图”和“三通管的展开图”所对应的消息处理函数中,再次分别执行上边的函数Stdrlgj
此文档下载收益归作者所有