实验5_2:MFC调用输入对话框并返回输入信息
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验5_2:MFC调用输入对话框并返回输入信息
实验准备:
1、硬件要求:PIII 800MHZ/256M 以上档次机器
2、软件要求:Windows XP专业版+IIS+VC++ 6.0
实验要求:按下图设计两个窗体,分别为主窗体MainForm与对话框InputNameDialog:
单击“…”按钮,弹出输入姓名信息对话框,在此对话框中姓名输入文本框中输入姓名信息,单出“确定”按钮或按下Enter键,则关闭对话框,而且返回姓名信息放入到主窗口的姓名文本框中;而单出“取消”按钮或按下ESC键,也要关闭对话框,但不必返回姓名信息,保留主窗口的姓名文本框中原来的姓名信息。
具体实验步骤:
1、在执行VC++6.0的File|New菜单项,显示:
选定“Project”页,再选择“MFC AppWizar[exe]” ,并设定工程名为Call_InputDlg 单击“OK”,显示:
选定“Dialog based”,然后单击“Next”,显示:
只选定“3D controls”,然后单击“Next”,显示:
按默认设定,直接单击“Next”,显示:
按默认设定,直接单击“Next”,显示:
单击“OK”,显示:
添加按钮“。
”,删去“取消”按钮,添加标签“姓名”与输入框,设计结果如下:
右单各控件,弹出快捷菜单,选定属性菜单项“Properties”,通过属性对话框,修改各控件的标题,等。
注意:修改以下的标题(Caption)与ID,字体
显示设计窗口:
为输入姓名文本框设置对应的字符串变量:m_edName,方法是右击“姓名文本框”ID为IDC_EDIT_NAME
单击“Add Variable”,,显示:
单击“OK”,显示:
的字符串变量m_inputName。
方法如下:
右击“Dialog”,添加对话框“insert Dialog”
显示如下:
显示设计窗口:
右单此窗口,弹出快捷菜单,并选择“ClassWizard…”,显示:
单击“OK”,显示:
输入Name: (类名)为:CinputNameDlg,生成InputNameDlg.cpp与InputNameDlg.h,生成对应于IDC_EDIT_NAME输入框的字符串变量m_inputName。
最后,打开Call_InputDlgDlg.h 文件,添加程序行:#include "inputNameDlg.h",注意:不要将它放置在文件Call_InputDlg.h中了。
3、为“调用对话框并返回信息”中的“。
”按钮,添加事件与事件处理函数
右击“。
”按钮,
选定“Events…”,显示:
在左边窗口中选定“BN_CLICKED”事件(单击事件),将会从左边窗口移至右边窗口,然后双击它,则会弹出程序编程框。
void CCall_InputDlgDlg::OnCallButton()
{
// TODO: Add your control notification handler code here
CInputNameDlg Dlg;
int nResponse=Dlg.DoModal();
if(nResponse==IDOK)
{
MessageBox("在输入框中按下<确定>按钮");
}
else
{
MessageBox("在输入框中按下<取消>按钮");
}
}
事先测试一番。
选定主菜单中的“Build”的执行:
最后,修改程序如下,完成程序。
void CCall_InputDlgDlg::OnCallButton()
{
// TODO: Add your control notification handler code here
CInputNameDlg Dlg;
int nResponse=Dlg.DoModal();
//添加按下"确定"返回值,修改输入框值,按下"取消",则保留原值
if(nResponse==IDOK) //按下"确定"
{
//TRACE("OK");
MessageBox("OK");
//如何取出输入对话框中的数据,返回值修改姓名框的值?
m_edName=Dlg.m_inputName;
UpdateData(FALSE); //显示刷新文本输入框数据
}
else if(nResponse==IDCANCEL) //按下"取消"
{
//TRACE("CANCEL");
MessageBox("CANCEL");
}
}
实验结果与存在问题及体会:
体会:1、学会了如何设计对话框
2、学会了如何调用它,并测试是否按下了“确定”按钮或是“取消”按钮,也学会了如何获得与设定和显示刷新输入框的数值。
2、学会了如何设计事件与处理事件函数。
小组成员:
组长:
E-mial:
提交日期:。