2 回答
TA贡献1895条经验 获得超7个赞
定义消息映射
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没有给父窗口,导致的异常
希望可以帮助你,祝你成功
TA贡献2036条经验 获得超8个赞
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;
添加回答
举报