对话框的数据交换

无模式对话框可以通过写静态get函数,得到返回值的方法,也可设置静态变量的方法。

如 声明在CMyDlg中 static int getX();

   函数:

        

1 int getX()
2  {
3        return X;
4 }

则在需要的窗口调用该函数即可

如  CMyDlg::getX();

模式对话框的数据传输如下,以编辑控件 EDIT为例

主窗口

1 CMyDialog dlg;                        
2 dlg.m_strEdit = _T("在此输入");    //初始化该编辑框的值
3 if (dlg.DoModal()==IDOK){
4       CString str = dlg.m_strEdit;   //返回后将输入值给 str
5

新建窗口中可以通过

SetDlgItemText(IDC_Edit,m_strEdit); //将m_strEdit的值给控件
GetDlgItemText(IDC_Edit,m_strEdit); //将控件的输入值给m_strEdit

得到控件的值;也可以通过DDX函数将控件和变量联系起来

void CNewDlg::DoDataExchange(CDataExchange *pDX)
{
   DDX_Text(pDX,IDC_Edit,m_StrEdit);
}

如下是DDX函数:  

下面是DDV函数

1 void CNewDlg::DoDataExchange(CDataExchange *pDX)
2 {
3    DDX_Text(pDX,IDC_Edit,m_IntEdit);
4    DDV_MinMaxInt(pDX,m_IntEdit,0,100);  //编辑的最大值最小值,超过该值 则显示一个错误提示信息
5 }

原文地址:https://www.cnblogs.com/LouMengzhao/p/6043090.html