简易MFC对话框程序设计教程.doc

简易MFC对话框程序设计教程.doc

ID:59342423

大小:18.00 KB

页数:2页

时间:2020-09-04

简易MFC对话框程序设计教程.doc_第1页
简易MFC对话框程序设计教程.doc_第2页
资源描述:

《简易MFC对话框程序设计教程.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、简易MFC对话框程序设计教程天津大学仁爱学院信息系杨晓龙我们之前所学习的C语言是一种面向过程的语言,重点在于程序或算法执行过程,提供那些过程才能实现程序,每一个操作都由我们自己完成。C++是一种面向对象的语言。对象是一个封装体,是一个实例,它里面不仅封装了程序运行时所需变量,更重要的是它还封装了程序运行所需操作即函数,其实真正定义它们的是一种叫“类”的数据结构,不过要引用里面的数据和操作必须通过类所定义的对象。这样做的好处是可以把经常使用的,属于同一类型的数据和操作包含在类当中,在编程时通过该类所实例化的对象调用它们(对象避免了重复,而且对象可以代表一种变量、一个实例或某个控

2、件),简化了代码,提高了代码的复用性,增强了程序的可移植性,降低了错误发生率,摆脱了每次编写程序都要编写大量代码的麻烦。MFC(MicrosoftFoundationClass)是微软提供给编程者的基础类库,它里面包含了创建对话框程序所需的各种类,在向导的帮助下,它会自动生成一些代码,我们只需调用它里面的少量成员函数便可完成对话框的创建和对话框程序的编程,如果让我们自己编写将是浩大而艰难的工程。MFC将常用的几乎所有的有关对话框的函数和变量封装起来,使我们避免了编写复杂而且重复的代码。用C语言所编写的程序是DOS程序,只能在黑乎乎的DOS界面下运行,但C语言是C++的基础,而

3、C++又是MFC的基础,用MFC编写的是windows应用程序有对话框,所以要回MFC编程得先学C语言和C++才能学MFC。以下将以编写求三角形面积的程序为例说明简单MFC程序的制作方法。打开vc6.0,文件—新建—选择MFCAppWizard(exe),工程名称“三角形面积计算器”—确定—选择“基本对话框”,此时即可点“完成”,也可点下一步,直到出现询问“您希望使用MFC库吗?”若选择“作为共享的DLL”,则程序在未安装vc6.0的电脑上无法运行;若选择“作为静态的DLL”,则程序在未安装vc6.0的电脑上也能运行。此后一直点确定即可。点击“完成”后出现由向导创建的基本对话

4、框,在对话框上点右键—属性,可更改对话框标题和字体。在右侧选择组件,先插入三个编辑框作为三角形三边长,在插入一按钮发出计算命令,然后再插入一编辑框作为面积输出。在每一个编辑框旁配上静态文本说明,修改按钮标题。在vc6.0左侧的资源视图中选中关于对话框,可修改版本信息。至此对话框主体设计完成。以下是程序最关键的部分。我们拥有C语言的基础,用C语言编写三角形面积代码(算法)不是问题,问题在于如何将编辑框中输入的数据传给算法中的变量以及如何使计算完成的结果输出到编辑框。实现这一数据交换(传输)有七中方法,其中最简单、最直观、最实用的方法是将编辑框与算法中的变量其的关联。步骤如下:选

5、中对应编辑框,右键选择建立类向导,选择“MemberVariables(成员变量)”选项卡,选择要关联变量的控件ID号,再点击“AddVariable(添加变量)”,设定变量名如“m_sizeA”,在VariableType(变量类型)中选择float(不同程序视所需变量类型确定),OK。同样方法,将其他两边和面积分别关联变量。这样就使编辑框分别与各变量取得了关联,以后可认为编辑框和变量是一样的,对变量的任何操作都会反映到编辑框中,接下来我们就可以像编C程序一样编写代码了。可是代码应该写在什么地方呢,程序在什么时候执行呢?我们的目的是在按下计算按钮后程序执行,所以还需对按钮进

6、行设定,让按钮被按下后执行程序。这个过程被称作消息捕获,操作系统捕获到“点击”的消息后将信息传给应用程序,应用程序便转入执行算法。在按钮上点击右键,选择“建立类向导”,选择“MessageMaps(消息地图)”选项卡,选中按钮ID号,在“Messages(消息)”中选中“BN_CLICKED(按钮单击)”消息响应方式(因为按钮可以有单击、双击、移动等多种操作,所以对应有多种消息响应方式,即选择:当对按钮执行怎样的操作后执行消息响应函数),然后点击“AddFunction(添加消息响应函数)”添加响应消息的函数或操作,也就是指当按钮被按下后要做什么,在弹出的对话框中可以更改函数

7、名,确定后点击“EditCode(编辑代码)”便自动转入消息响应函数中,我们就可以在这里写我们的算法代码了。代码如下:#include//数学函数头文件voidCMyDlg::OnButton1()//消息响应函数{//TODO:AddyourcontrolnotificationhandlercodehereUpdateData();//数据更新,将编辑框中的数据更新并传送给控件变量floatp,s;if(m_sizeA+m_sizeB>m_sizeC&&m_sizeA+m_sizeC

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

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

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