MFC对话框程序设计详解.doc
文本预览下载声明
MFC对话框程序设计详解
(朱从旭 老师)
1. 利用MFCAppWizard(exe)建立程序框架
注意:请各位同学新建的“工程名称”用自己的全学号命名(这里假定学号是“123”):
图1 “新建”对话框之新建“工程”
图2 选择“程序类型”
图3 选择“程序类型”续1
图4 选择“程序类型”续2
图5 “程序类”总结
图6 程序最后总结
图1.7 在开发环境下看程序的界面
2. 设计程序的界面
图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 按上述方法画出本程序的所有控件;同时将原有“确定”控件的标题改为“添加学生”,将原有“取消”控件的标题改为“退出程序”
3. 设置“消息映射Message Maps”和“成员变量Member Variables”
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 设置编辑框的关联变量(变量名、数据类型)
3.3 为每个命令按钮(Button)设置消息映射(Message Maps)
以“添加学生”按钮设置鼠标单击的消息映射为例:在图3.1中,选“Message Maps”标签;然后在控件列表框中选定“Add_BUTTON”,在“Message”列表框中选定“BN_CLICKED”;并单击“Add Function…按钮; 如图3.3所示。
图3.3 为Add_BUTTON按钮设置消息映射
在弹出的图3.4“Add Member Function 对话框中,指定函数名字(如OnAddButton);单击“OK”按钮。按此法为其余的每个命令按钮分别指定一个成员函数;每个按钮对鼠标单击消息关联的成员函数名分别指定为表2所示的名称。
图3.4 为Add_BUTTON按钮设置的成员函数名(OnAddButton)
至此,程序界面基本上已经设置好。用户可以运行程序,即可看到图3.5所示的程序界面;但是用户单击界面上的任何按钮时,程序不能执行任何功能,那是因为我们还没有写一句程序代码。接下来的事情将是为程序写语句(代码)。
图3.5 程序运行时的界面
为了下一步写程序的方便,我们需要记住界面上控件的一些关键信息。为清楚起见,在此将这些关键信息列于表1~表2中:表1是每个编辑框的名字、对应关联变量名;表2是每个命令按钮的名字、鼠标单击消息所关联的成员函数名。
表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
表2. 每个命令按钮的名称、鼠标单击消息关联的成员函数名
按钮的功能描述 按钮的名称 按钮鼠标单击消息关联的成员函数名 添加学生 Add_BUTTON OnAddButton 退出程序 Exit_BUTTON OnExitButton 查找指定学号学生并输出 Search_BUTTON1 OnSchearButton1 查找总分最高学生输出 Search_BUTTON2
显示全部