MFC程序设计基础C++课程设计.ppt

上传人:精*** 文档编号:852922 上传时间:2023-09-16 格式:PPT 页数:48 大小:699.50KB
下载 相关 举报
MFC程序设计基础C++课程设计.ppt_第1页
第1页 / 共48页
MFC程序设计基础C++课程设计.ppt_第2页
第2页 / 共48页
MFC程序设计基础C++课程设计.ppt_第3页
第3页 / 共48页
MFC程序设计基础C++课程设计.ppt_第4页
第4页 / 共48页
MFC程序设计基础C++课程设计.ppt_第5页
第5页 / 共48页
点击查看更多>>
资源描述

1、 C+课程设计课程设计MFC程序设计基础程序设计基础窗口界面窗口界面创建创建MFC应用程序应用程序一个应用程序对应于一个应用程序对应于C+的一个工程。的一个工程。可以创建三种类型的可以创建三种类型的MFC应用程序:应用程序:1、Single document(单文档)(单文档)2、Multiple document(多文档)(多文档)3、Dialog based(基于对话框)(基于对话框)对话框程序对话框程序 对话框对话框是一种用户界面,它的主要功能是一种用户界面,它的主要功能是是输出信息输出信息和和接收用户的输入接收用户的输入。对话框与。对话框与控件是密不可分的,在每个对话框内一般控件是密不

2、可分的,在每个对话框内一般都有一些都有一些控件控件,对话框依靠这些控件与用,对话框依靠这些控件与用户进行交互。一个典型的对话框例子是选户进行交互。一个典型的对话框例子是选择了择了File-OpenFile-Open命令后弹出的文件对话框。命令后弹出的文件对话框。成员成员变量变量和和函数函数 对话框需要有一组成员变量来存储数对话框需要有一组成员变量来存储数据。在对话框中,控件用来表示或输入数据。在对话框中,控件用来表示或输入数据,因此,据,因此,存储数据的成员变量存储数据的成员变量应该与控应该与控件相对应。件相对应。成员函数成员函数用来处理成员变量所存储的数用来处理成员变量所存储的数据。据。一个

3、简单的对话框对话框窗口对话框窗口对话框对话框(Dialog)实际上是一个实际上是一个窗口窗口在在MFC中,对话框的功能被封装在了中,对话框的功能被封装在了CDialog类中,类中,CDialog类是类是CWnd类的派生类。类的派生类。对话框分为对话框分为模态对话框模态对话框和和非模态对话框非模态对话框两种。两种。模态对话框模态对话框 模态对话框垄断了用户的输入模态对话框垄断了用户的输入,当一个,当一个模态对话框打开时,用户只能与该对话框模态对话框打开时,用户只能与该对话框进行交互,而其它用户界面对象收不到输进行交互,而其它用户界面对象收不到输入信息。我们平时所遇到的大部分对话框入信息。我们平时

4、所遇到的大部分对话框都是模态对话框。都是模态对话框。非模态对话框非模态对话框 非模态对话框不垄断用户的输入非模态对话框不垄断用户的输入,打开,打开非模态对话框后,仍可与其它用户界面对非模态对话框后,仍可与其它用户界面对象进行交互,用户可以一边搜索,一边修象进行交互,用户可以一边搜索,一边修改文章,这样就大大方便了使用。改文章,这样就大大方便了使用。对话框的组成对话框的组成 从从MFC编程的角度来看,一个对话框编程的角度来看,一个对话框由两部分组成:由两部分组成:1.对话框模板资源对话框模板资源。对话框模板用于指定。对话框模板用于指定对话框的控件及其分布,对话框的控件及其分布,Windows根据

5、对根据对话框模板来创建并显示对话框。话框模板来创建并显示对话框。2.对话框类对话框类。对话框类用来实现对话框的。对话框类用来实现对话框的功能,由于对话框行使的功能各不相同,功能,由于对话框行使的功能各不相同,因此一般需要从因此一般需要从CDialog类派生一个新类,类派生一个新类,以完成特定的功能。以完成特定的功能。创建基于对话框的创建基于对话框的MFC程序程序创建基于对话框的创建基于对话框的MFC应用程序有两个阶段:应用程序有两个阶段:1、设计阶段:创建对话框模板并添加控件、设计阶段:创建对话框模板并添加控件2、编程阶段:编写、编程阶段:编写C+源代码将将对话框及源代码将将对话框及其控件与类

6、和函数相连。其控件与类和函数相连。设计阶段1新建设计阶段2工程类型设计阶段3对话框特征设计阶段4对话框风格设计阶段5对话框类设置设计阶段6项目信息设计阶段7对话框设计完毕设计阶段在对话框中添加控件控件工具栏控件工具栏控件控件功能功能对应控件类对应控件类静态正文静态正文(Static Text)显示正文,一般不能接受输入信息。显示正文,一般不能接受输入信息。CStatic图片图片(Picture)显式位图、图标、方框和图元文件,一般不能显式位图、图标、方框和图元文件,一般不能接受输入信息。接受输入信息。CStatic编辑框编辑框(Edit Box)输入并编辑正文,支持单行和多行编辑。输入并编辑正

7、文,支持单行和多行编辑。CEdit命令按钮命令按钮(Pushbutton)响应用户的输入,触发相应的事件。响应用户的输入,触发相应的事件。CButton检查框检查框(Check Box)用作选择标记,可以有选中、不选中和不确定用作选择标记,可以有选中、不选中和不确定三种状态。三种状态。CButton单选按钮单选按钮(Radio Button)用来从两个或多个选项中选中一项。用来从两个或多个选项中选中一项。CButton组框组框(Group Box)显示正文和方框,主要用来将相关的一些控件显示正文和方框,主要用来将相关的一些控件聚成一组。聚成一组。CButton列表框列表框(List Box)显

8、示一个列表,用户可以从该列表中选择一项显示一个列表,用户可以从该列表中选择一项或多项。或多项。CListBox组合框组合框(Combo Box)是一个编辑框和一个列表框的组合。分为简易是一个编辑框和一个列表框的组合。分为简易式、下拉式和下拉列表式。式、下拉式和下拉列表式。CComboBox滚动条滚动条(Scroll Bar)主要用来从一个预定义范围值中迅速而有效地主要用来从一个预定义范围值中迅速而有效地选取一个整数值。选取一个整数值。CScrollBar对话框主要控件对话框主要控件控件属性控件属性ID属性属性。用于指定控件的标识符,。用于指定控件的标识符,Windows依靠依靠ID来区分不同的

9、控件。来区分不同的控件。Caption(标题)属性(标题)属性。静态正文、组框、按钮、。静态正文、组框、按钮、检查框、单选按钮等控件可以显示标题,用来对检查框、单选按钮等控件可以显示标题,用来对控件进行文字说明。控件标题中的字符控件进行文字说明。控件标题中的字符&使紧跟使紧跟其后的字符有下划线,按其后的字符有下划线,按Alt+下划线将启动该控下划线将启动该控件。若控件是一个单选按钮,则件。若控件是一个单选按钮,则Alt+下划线字符下划线字符将选择该按钮;若是检查框,则相当于对该检查将选择该按钮;若是检查框,则相当于对该检查框按空格键;若是按钮,则将激活按钮命令;若框按空格键;若是按钮,则将激活

10、按钮命令;若控件是一个静态正文,则将激活按控件是一个静态正文,则将激活按tab顺序紧随其顺序紧随其后的下一个控件。后的下一个控件。控件属性控件属性Visible属性属性。用来指定控件是否是可见的。用来指定控件是否是可见的。Disable属性属性。使控件允许或禁止,一个禁止。使控件允许或禁止,一个禁止的控件呈灰色显示,不能接收任何输入。的控件呈灰色显示,不能接收任何输入。Tabstop属性属性。用户可以按。用户可以按Tab键移动到具有键移动到具有Tabstop属性的控件上。属性的控件上。Tab移动的顺序可移动的顺序可以由用户指定。按以由用户指定。按Ctrl+D则则Tab顺序会显示顺序会显示出来,

11、如图出来,如图5.5,用户可以用鼠标来重新指,用户可以用鼠标来重新指定定Tab顺序。缺省的顺序。缺省的Tab顺序是控件的创建顺序是控件的创建次序。次序。控件属性控件属性Group属性属性。用来指定一组控件,用户可以。用来指定一组控件,用户可以用箭头键在该组控件内移动。在同一组内用箭头键在该组控件内移动。在同一组内的单选按钮具有互斥的特性,即在这些单的单选按钮具有互斥的特性,即在这些单选按钮中只能有一个是选中的。如果一个选按钮中只能有一个是选中的。如果一个控件具有控件具有Group属性,则这个控件以及按属性,则这个控件以及按Tab顺序紧随其后的所有控件都属于一组的,顺序紧随其后的所有控件都属于一

12、组的,直到遇到另一个有直到遇到另一个有Group属性的控件为止。属性的控件为止。设置控件的设置控件的ID和外观和外观控件的控件的ID是控件的唯一标识,应该易理解。是控件的唯一标识,应该易理解。控件的控件的外观外观包括:包括:大小大小位置位置颜色颜色标题标题对齐对齐设置控件的设置控件的Tab顺序顺序 安置好控件之后,下一步的任务是安置好控件之后,下一步的任务是指定指定Tab顺序顺序。按。按Ctrl+D键后,会显示当前的键后,会显示当前的Tab顺序,通过用鼠标点击控件可以设定新顺序,通过用鼠标点击控件可以设定新的的Tab顺序,如果想放弃本次修改,在对话顺序,如果想放弃本次修改,在对话框的空白处点击

13、一下即可。框的空白处点击一下即可。使用类向导为控件添加映射变量 为控件添加消息响应函数 双击要添加成员函数的控件用类向导添加控件消息处理函数添加添加成员变量成员变量 右击工作区窗格的类视图,出现环境菜右击工作区窗格的类视图,出现环境菜单,选择单,选择Add Member Variable,就有:,就有:添加添加成员函数成员函数 右击工作区窗格的类视图,出现环境菜右击工作区窗格的类视图,出现环境菜单,选择单,选择Add Member Function,就有:,就有:数据交换数据交换 对话框的数据成员变量存储了与控件相对话框的数据成员变量存储了与控件相对应的数据。对应的数据。数据变量需要和控件交换

14、数数据变量需要和控件交换数据据,以完成输入或输出功能。数据交换和,以完成输入或输出功能。数据交换和数据有效机制适用于编辑框、检查框、单数据有效机制适用于编辑框、检查框、单选按钮、列表框和组合框。选按钮、列表框和组合框。数据交换数据交换当程序需要交换数据时,要调用当程序需要交换数据时,要调用CWnd:UpdateData。该函数只有一个布。该函数只有一个布尔型参数,它决定了数据传送的方向。调尔型参数,它决定了数据传送的方向。调用用UpdateData(TRUE)将数据从对话框的控将数据从对话框的控件中传送到对应的数据成员中,调用件中传送到对应的数据成员中,调用UpdateData(FALSE)则

15、将数据从数据成员则将数据从数据成员中传送给对应的控件。中传送给对应的控件。数据交换示意图数据交换示意图添加新类添加新类 添加新类的目的是处理数据,例如创建添加新类的目的是处理数据,例如创建链表、排序、查找等。链表、排序、查找等。新类可以是控件类和一般类。新类可以是控件类和一般类。在工作区窗格里选择类视图(在工作区窗格里选择类视图(class view)标签;)标签;右击第一行出现环境菜单;右击第一行出现环境菜单;选择选择“new class”;添加新类添加新类添加的新类可以是添加的新类可以是MFCMFC的的子类也可以是自定义子类也可以是自定义的一般类,在的一般类,在“New New class

16、class”窗口中可以选窗口中可以选择,例如新类的名字择,例如新类的名字叫叫gbzpgbzp(干部招聘)(干部招聘)新类设置新类设置 添加进新类后,要在对话框类的添加进新类后,要在对话框类的CPP文件中文件中加一行加一行“#include gbzp.h”,不然新类无法使,不然新类无法使用;用;新添加的类以两个文件的形式存在,一个是新添加的类以两个文件的形式存在,一个是头文件,一个是头文件,一个是CPP文件,头文件定义了类的文件,头文件定义了类的接口,接口,CPP文件定义了类的实现;文件定义了类的实现;这两个文件可以在脱离工程的状态下进行编这两个文件可以在脱离工程的状态下进行编辑,然后覆盖原来的

17、同名文件就可以了辑,然后覆盖原来的同名文件就可以了多对话框操作多对话框操作 一个基于对话框的应用程序,只有一个一个基于对话框的应用程序,只有一个窗口是不够的,窗口是不够的,需要进行多对话框操作需要进行多对话框操作。在资源视图窗格中右击第一行在环境菜在资源视图窗格中右击第一行在环境菜单中选择单中选择“Insert”,出现插入对话框,出现插入对话框,在插入对话框中选择在插入对话框中选择“插入新对话框模插入新对话框模板资源(板资源(Dialog)”,然后点击按钮,然后点击按钮“NEW”。添加新对话框添加新对话框创建新模板类创建新模板类用用ClassWizard创建新的对话框处理类。创建新的对话框处理

18、类。在资源视图窗格中选中新资源模板,在资源视图窗格中选中新资源模板,ClassWizard会自动检测到该对话框模板会自动检测到该对话框模板是一个新的资源,然后按提示操作就可用是一个新的资源,然后按提示操作就可用了。注意:了。注意:类名前必须加大写字母类名前必须加大写字母C,最,最后三个字母是后三个字母是Dlg。设置消息处理函数和映射变量设置消息处理函数和映射变量在在Message Maps标签下为此对话框添加标签下为此对话框添加消息处理函数以及映射变量;消息处理函数以及映射变量;在新对话框的父对话框的合适的处理函数在新对话框的父对话框的合适的处理函数中(相应为控件)创建一个新对话框的实中(相应

19、为控件)创建一个新对话框的实例(对象):例(对象):CMyCustomDlg dlgMyCustom(this),这里的,这里的CMyCustomDlg要换成具体的新对话框要换成具体的新对话框类名,类名,dlgMyCustom换成具体的对象名换成具体的对象名打开新对话框打开新对话框在新对话框的父对话框的在新对话框的父对话框的CPP文件的顶部文件的顶部加入加入“#include MyCustomDlg.h”,在父对话框中需要打开新对话框的位置用在父对话框中需要打开新对话框的位置用语句:语句:int nRetCode=dlgMyCustom.DoModal()来激活(打开)新的对话框;来激活(打开

20、)新的对话框;检查新对话框检查新对话框新对话框打开后,父对话框就新对话框打开后,父对话框就“暂停暂停”运运行,行,控制转入新对话框控制转入新对话框。新对话框结束后。新对话框结束后再返回父对话框,再返回父对话框,暂停结束暂停结束。可在父对话框中打开新对话框语句的后面,可在父对话框中打开新对话框语句的后面,用检查用检查nRetCode的值来确定新对话框是的值来确定新对话框是单击了单击了“OK“还是单击了还是单击了CANCEL按钮退按钮退出的:出的:if(nRetCode=IDOK)初始化新对话框初始化新对话框父对话框在调用新对话框时可以初始化新父对话框在调用新对话框时可以初始化新对话框的对话框的控

21、件映射变量控件映射变量的值,例如:的值,例如:CmyCusTomDlg dlgMyCustom(this);DlgMyCustom.m_nAge=31;DlgMyCustom.m_strName=”zhang”;DlgMyCustom.DoModal();里的里的m_nAge和和m_nName都是新对话框控都是新对话框控件的映射变量。件的映射变量。新对话框数据处理新对话框数据处理当在新对话框中按下了当在新对话框中按下了OK按钮后,这些按钮后,这些映射变量也带回了在新对话框中所做的修映射变量也带回了在新对话框中所做的修改后的新值。调用相关函数就可以处理这改后的新值。调用相关函数就可以处理这些数据了。些数据了。

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 技术资料 > 课程设计

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922