2 C++MFC对话框程序设计示例详解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MFC对话框程序设计详解
(中南大学朱从旭老师)
1. 利用MFCAppWizard(exe)建立程序框架
注意:请各位同学新建的“工程名称”用自己的全学号命名(这里假定学号是“123”),此过程的操作详见图1.1~图1.7所示。
图1.1 “新建”对话框之新建“工程”
图1.2 选择“程序类型”
图1.3 选择“程序类型”续1 图1.4 选择“程序类型”续2
图1.5 “程序类”总结
图1.6 程序最后总结
到此为止,程序的图像见面的框架已经建立,如图1.7所示。接下来第2节将介绍如何
在界面上添加控件(文本框、命令按钮、等),以便得到具体程序的个性化界面。
图1.7 在开发环境下看程序的界面
2. 设计程序的界面
本节所述的操作步骤和方法详见图2.1~图2.7所示。
图2.1 在开发环境下调出“控件”工具箱
图2.2 在程序的“界面”中删除不要的控件
图2.3 用鼠标在“控件”工具箱里单击“静态文本”控件,然后在界面上画出一个“静态文本”控件(Static),然后右击该控件并单击“属性”菜单
图2.4 在弹出的“属性”对话框中指定该控件的ID(名称)、标题(可见内容)
图2.5 按照图2.1~2.4的方法画出一个编辑框(EDIT),并在它的“属性”对话框中暂时只
要指定该控件的ID(名称)
图2.6 按照图2.1~2.4的方法画出一个命令按钮(BUTTON),并在它的“属性”对话框中指定该命令按钮控件的ID(名称)、标题(可见内容)
图2.7 按上述方法画出本程序的所有控件;同时将原有“确定”控件的标题改为“添加学生”,将原有“取消”控件的标题改为“退出程序”
完成图2.1~2.7的操作后,你的个性化程序界面已经设计好,此时,最好“编译”->“链接”->“运行”一下看看,如果上述操作无误,你将看到一个像模像样的图形界面程序运行起来了。不过,当用户用鼠标单击界面上的命令按钮时程序不会有任何反应,要想实现命令按钮的相应功能,需要在相应“消息映射函数”中自己写一些程序代码,请阅读第3节。
3. 设置“成员变量Member Variables”和“消息映射Message Maps”
3.1从“查看”菜单/“建立类向导”引出“MFC ClassWizard”对话框(图3.1);
图3.1 “MFC ClassWizard”对话框
3.2 为每个编辑框(Edit)设置成员变量(Member Variables)
以“学号”框设置成员变量为例:在图3.1中,选“Member Variables”标签;然后在控件列表框中选定“Number_EDIT”,并单击“Add Variable…"按钮,在弹出的“Add Member Variable"对话框中,指定它的关联变量的名字为m_1(也可以是其它名字),关联变量的数据类型为"int",如图3.2所示。
图3.2 设置编辑框的关联变量(变量名、数据类型)
按上述方法为每个编辑框指定一个关联变量(含名字、数据类型);本示例中,给每个编辑框指定的关联变量(含名字、数据类型)如下面的表1所示。
表1. 本示例中每个编辑框的名字、对应关联变量名
编辑框描述的内容编辑框的名称编辑框的关联变量名关联变量的数据类型学号Number_EDIT m_1 int
姓名Name_EDIT m_2 Cstring
语文Chinese_EDIT m_3 int
数学Math_EDIT m_4 int
英语English_EDIT m_5 int 输出姓名OutName_EDIT m_6 Cstring
输出总分OutTotal_EDIT m_7 int
输出平均分OutAverage_EDIT m_8 Int
指定学号值Specify_EDIT m_9 int
备注:Cstring类型是字符串类型(而char类型是字符类型,属于基本数据类型),Cstring 类型不是基本数据类型,实际上是C++的
3.3 为每个命令按钮(Button)设置消息映射(Message Maps)
以“添加学生”按钮设置鼠标单击的消息映射为例:在图3.1中,选“Message Maps”标签;然后在控件列表框中选定“Add_BUTTON”,在“Message”列表框中选定“BN_CLICKED”;并单击“Add Function…"按钮; 如图3.3所示。
图3.3 为Add_BUTTON按钮设置消息映射
在弹出的“Add Member Function "对话框中(图3.4),指定函数名字(如OnAddButton);单击“OK”按钮。按此法为其余的每个命令按钮分别指定一个成员函数;本例中给每个按钮鼠标单击消息指定的关联成员函数名分别如下面的表2所示。
图3.4 为Add_BUTTON按钮设置的成员函数名(OnAddButton)
表2. 每个命令按钮的名称、鼠标单击消息关联的成员函数名
按钮的功能描述按钮的名称按钮鼠标单击消息关联的成员函数名添加学生Add_BUTTON OnAddButton
退出程序Exit_BUTTON OnExitButton
查找指定学号学生并输出Search_BUTTON1 OnSchearButton1
查找总分最高学生输出Search_BUTTON2 OnSchearButton2
查找总分最低学生输出Search_BUTTON3 OnSchearButton3
删除指定学号学生全部信息Delete_BUTTON OnDeleteButton
至此,程序界面基本上已经设置好。用户可以运行程序,即可看到图3.5所示的程序界面;但是用户单击界面上的任何按钮时,程序不能执行任何功能,那是因为我们还没有写一句程序代码。接下来的事情将是为程序写代码(即程序语句)。
图3.5 程序运行时的界面
为了下一步写程序的方便,我们需要记住界面上控件的一些关键信息。为清楚起见,在此已将这些关键信息列于了前面的表1~表2中:表1是每个编辑框的名字、对应关联变量名、关联变量的数据类型;表2是每个命令按钮的名字、鼠标单击消息所关联的成员函数名。
4. 编写程序代码
现在,单击开发环境界面左半窗下面的“FileView”标签,再双击“Source Files”下面的文件名“123Dlg.cpp”(对话框的源文件,dlg是“对话框”的英文单词缩写),即可看到