您的位置:首页 > 其它

如何在文档视图结构界面程序中弹出对话框并通过edit control控件传递数据

2017-02-28 16:11 239 查看
   最近写一个MFC的界面程序,主界面一个基于单文档的视图结构,但是需要edit control传递一个数据值给一个变量,即需要手动设置一个参数。在基于对话框的界面中,要通过edit control控件传递一个数据给程序很简单。直接在工具箱中拖一个edit
control控件到对话框界面上,再修改该控件的ID,并为其添加一个变量,注意选择所属的基类即可。

但是在基于单文档的界面中就不行了,因为在资源视图中的工具箱中根据找不到edit control这个控件,所以在基于文档结构的MFC界面中要手动输入数据值,最好的办法是:在菜单中设置一个按钮,并在该按钮的响应函数中弹出一个对话框,在对话框中用edit
control控件传递数据值
。这种文档结构的软件界面当有很多参数需要手动传递的时候就可以用这种方法。

一、在基于文档结构的界面中弹出对话框的步骤:

1、打开工程的资源视图->Dialog->右击->选择“插入Dialog”。这样既可新建一个对话框。

2、为新插入的对话框添加类。同样在资源视图中,将光标移动至刚新插入的对话框上->右击->点击"添加类",在弹出“类向导”对话框中设置类名称,注意:一般类的名称用大写的字母C开头。

3、添加完成后注意看工程目录,会多出一个.h和一个.cpp文件,这里以dlg.h和dlg.cpp为例、类名为CDlg方便下文。

4、在原来的文档视图的Doc.h文件中,包含dlg.h文件,即;#include "dlg.h"即可。在Doc的类定义中,添加一个public类型的CDlg类对象(模态对话框),或者是对象指针(非模态对话框)。

5、在文档结构视图的菜单中的选择一个按钮,右击为其添加事件处理程序(注意选择所属的类,一般为Doc的那个类),在响应函数中用DoModal函数弹出对话框。例程:

void xxDoc::OnXX()
{
//CDlg0为Doc类的刚新添加的Cdlg类的类成员
if(CDlg0.Domodal())
{
}
}
以上弹出的是模态对话框。关于模态和非模态再叙述。

6、编译工程,在文档视图界面的菜单中单击5中的那个按钮,就可以弹出1中插入的对话框。

二、利用edit control控件传递数据:

1、在插入的对话框上,在工具箱中拖一个edit control控件到界面上,右击为其添加一个变量,一般变量以m_开头,点击"确定"。

2、注意这时候在Dlg.h文件中Dlg类的定义中就会有刚添加这个变量。

3、双击新插入对话框上“确定”按钮,在确定按钮的消息处理函数中,添加UpdateData(TRUE)语句,将edit control控件的值传递给edit control控件的对应的变量。

void CDlgParaSet::OnBnClickedOk()
{
// TODO: 在此添加控件通知处理程序代码
UpdateData(TRUE);
CDialogEx::OnOK();
}
4、在一中步骤5中的按钮消息函数中,将edit control控件变量的值赋值给需要的变量。

void xxDoc::OnXX()
{
//CDlg0为Doc类的刚新添加的Cdlg类的类成员
if(CDlg0.Domodal())
{
int data = CDlg0.m_data;	//m_data为edit control控件添加的变量名字, data需要接受数据值的变量
}
}
5、通过编译,即可通过单击在文档视图的菜单中按钮,弹出对话框,输入数据,单击确定,将相应的数据传递到Doc工程中。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐