MFC中对话框在DOMODAL()之后就析构了,怎么在外部类中得到对话框的属性值呢?
在***Doc类中用new实例化了一个对话框,想通过对话框获取用户的设置值,但domodal()之后对话框就已经不能用了,在哪一步获取对话框中的属性值呢!!?...
在***Doc类中用new实例化了一个对话框,想通过对话框获取用户的设置值,
但domodal()之后对话框就已经不能用了,在哪一步获取对话框中的属性值呢!!? 展开
但domodal()之后对话框就已经不能用了,在哪一步获取对话框中的属性值呢!!? 展开
4个回答
展开全部
DoModal() 函数执行完后, 可以利用其返回值知道用户是使用 "OK", 还是 "Cancel" 关闭的窗口, 然后再根据你的需要选择是不是保存参数, 通常情况下过程如下:
1. 定义一个对话框类
class CDlgClass : public CDialog
{
// 正常的 CDialog 成员
int m_A; // 要保存的值, 这个值在对话框里进行修改, 并传出数据
}
2. 使用方法
int A;
CDlgClass * pdlg = new CDlgClass;
if( IDOK==pdlg->DoModal() )
{
A=pdlg->m_A; //
}
delete pdlg;
1. 定义一个对话框类
class CDlgClass : public CDialog
{
// 正常的 CDialog 成员
int m_A; // 要保存的值, 这个值在对话框里进行修改, 并传出数据
}
2. 使用方法
int A;
CDlgClass * pdlg = new CDlgClass;
if( IDOK==pdlg->DoModal() )
{
A=pdlg->m_A; //
}
delete pdlg;
展开全部
定义消息映射
BEGIN_MESSAGE_MAP(ParameterDialog, CDialog)
ON_BN_CLICKED(IDOK, &ParameterDialog::OnBnClickedOk)
END_MESSAGE_MAP()
点击后 获取参数值
// ParameterDialog 消息处理程序
void ParameterDialog::OnBnClickedOk()
{
// TODO: 在此添加控件通知处理程序代码
OnOK();
CString radius,retio,angle;
cradius.GetWindowText(radius);
cangle.GetWindowText(angle);
cretio.GetWindowText(retio);
m_radius = atof(radius);
m_reito = atof(retio);
m_angle = atof(angle);
}
//上层调用 获取参数
void ParameterDialog::getParameter(double &angle,double &retio,double &radius)
{
angle = m_angle;
retio = m_reito;
radius = m_radius;
}
需要注意的是,如果用new 要给这个串口传递this作为 父窗口的指针,或者直接作为局部变量声明也行。我以前出现过,用new没有给父窗口,导致的异常
希望可以帮助你,祝你成功
BEGIN_MESSAGE_MAP(ParameterDialog, CDialog)
ON_BN_CLICKED(IDOK, &ParameterDialog::OnBnClickedOk)
END_MESSAGE_MAP()
点击后 获取参数值
// ParameterDialog 消息处理程序
void ParameterDialog::OnBnClickedOk()
{
// TODO: 在此添加控件通知处理程序代码
OnOK();
CString radius,retio,angle;
cradius.GetWindowText(radius);
cangle.GetWindowText(angle);
cretio.GetWindowText(retio);
m_radius = atof(radius);
m_reito = atof(retio);
m_angle = atof(angle);
}
//上层调用 获取参数
void ParameterDialog::getParameter(double &angle,double &retio,double &radius)
{
angle = m_angle;
retio = m_reito;
radius = m_radius;
}
需要注意的是,如果用new 要给这个串口传递this作为 父窗口的指针,或者直接作为局部变量声明也行。我以前出现过,用new没有给父窗口,导致的异常
希望可以帮助你,祝你成功
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
为些对话框的控件关联成员变量哦
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把对话框得到的参数保存下来
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询