对话框通过EndDialog返回值传值回父窗体

1. 调用对话(模式调用)

MyDialog dlg(this);

INT_PTR nRet=dlg.DoModal();  //这里接收模态对话框传出来的指针

if(nRet==IDCANCEL)      //如果是点的IDCANCEL按钮或是关闭按钮就返回

  return;

 

STUDENT *pStu=(STUDENT*)nRet;

//pStu指针就是从对话框中传过来的数据

// 用完后记得删除pStu指向的内存

Delete pStu;

 

2.对话框的IDOK按钮消息

void OnOK()

{

  STUDENT* pStu=new STUDENT;  //创建新的结构体,一定要New,不然传递过去是乱码

  

  //把控件中的数据赋值给结构体指针变量

  GetDlgItemText(IDC_NAME_EDIT,pStu->name);

  GetDlgItemText(IDC_SEX_COMBO,pStu->sex);

  pStu->age=GetDlgItemText(IDC_AGE_EDIT);

  GetDlgItemText(IDC_TEL_EDIT,pStu->tel);

 

  ::EndDialog(m_hWnd,(INT_PTR)pStu); //传数据到模态返回值中

}

 

void OnCancel()

{

  ::EndDialog(m_hWnd,IDCANCEL);

}

 

void OnClose()

{

  OnCancel();

}

posted @ 2022-05-29 08:27  初吻给了烟灬  阅读(105)  评论(0)    收藏  举报