我定义了一个全局的float变量xx
有定义了一个对话框上的EDIT控件关联的一个变量m_editx;
我在程序中写了
UpdateData(TRUE);
CDiagoseDlg dlg;xx=dlg.m_x;
但是结果是无法将dlg.m_x的值传递给全局变量xx。想问各位怎么解决,为什么这样~
有定义了一个对话框上的EDIT控件关联的一个变量m_editx;
我在程序中写了
UpdateData(TRUE);
CDiagoseDlg dlg;xx=dlg.m_x;
但是结果是无法将dlg.m_x的值传递给全局变量xx。想问各位怎么解决,为什么这样~
把 xx地址 作为CDiagoseDlg构造函数的参数,传指针进去
构造函数中 m_x地址 = xx地址
对话框中处理 m_x 就相当于处理 xx 了
你定义了一个临时对话框,然后xx=dlg.m_x;
把临时对话框的那个值传过去了?
那个dlg你是输入数据的那个对话框么?
其构造函数是~
CDiagoseDlg::CDiagoseDlg(CWnd* pParent /*=NULL*/)
: CDialog(CDiagoseDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CDiagoseDlg)
m_x = 0.0f;
//}}AFX_DATA_INIT
// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
不知道能不能加个你所说的参数~
void CDiagoseDlg::OnOK()
{
// TODO: Add extra validation here
UpdateData(TRUE);
CDiagoseDlg dlg;
CString str;
str.Format("%f",dllGlobalVar1);
MessageBox(str); xx=dlg.m_x;
dllGlobalVar1=xx; str.Format("%f",dllGlobalVar1);
MessageBox(str);
CDialog::OnOK();
}
,我写的是基于对话框的~消息响应函数就是
void CDiagoseDlg::OnOK()
{
// TODO: Add extra validation here
UpdateData(TRUE);
CDiagoseDlg dlg;
CString str;
str.Format("%f",dllGlobalVar1);
MessageBox(str); xx=dlg.m_x;
dllGlobalVar1=xx; str.Format("%f",dllGlobalVar1);
MessageBox(str);
CDialog::OnOK();
}
成员变量 float *m_x;
dlg1::dlg1(subani *sub)
: CDialog(IDD_DLG1, NULL)
{
m_x = &xxx;
}
然后做处理就可以了你试一下吧,我没用过float类型的,都是用类成员的指针
————————————————————————————————————继承CDialog的肯定是基于对话框的吧,就是用 DoModal()弹出的那种
如果我要获得Edit控件的输入值一般会直接GetWindowText
void CDiagoseDlg::OnOK()
{
// TODO: Add extra validation here
UpdateData(TRUE);
CString str;
str.Format("%f",dllGlobalVar1);
MessageBox(str); xx=m_x;
dllGlobalVar1=xx; str.Format("%f",dllGlobalVar1);
MessageBox(str);
CDialog::OnOK();
}看起来dllGlobalVar1与xx应该是一样的,xx可以去掉,直接写dllGlobalVar1 = m_x;就可以了