mfcdialog互传数据
时间: 2024-04-23 07:17:22 浏览: 105
在MFC Dialog中,可以通过以下两种方式实现对话框之间的数据传递:
1.使用消息机制传递数据。在发送方对话框中定义一个消息,然后在接收方对话框中重载消息处理函数,从而实现数据传递。具体步骤如下:
在发送方对话框中定义消息:
```cpp
#define WM_SEND_DATA WM_USER+1 //自定义消息
//发送消息
SendMessage(WM_SEND_DATA, (WPARAM)&data, 0);
```
在接收方对话框中重载消息处理函数:
```cpp
BEGIN_MESSAGE_MAP(CReceiveDlg, CDialogEx)
ON_MESSAGE(WM_SEND_DATA, OnSendData)
END_MESSAGE_MAP()
//消息处理函数
LRESULT CReceiveDlg::OnSendData(WPARAM wParam, LPARAM lParam)
{
Data* pData = (Data*)wParam;
//处理数据
return 0;
}
```
2.使用自定义对话框类传递数据。在发送方对话框中创建接收方对话框的实例,并将需要传递的数据作为参数传递给接收方对话框。具体步骤如下:
在发送方对话框中创建接收方对话框的实例,并传递数据:
```cpp
SafeDataDlg dlg;
if (dlg.DoModal() == IDOK) {
mDemo = dlg.GetDemo();
EDIT_TEXT.SetWindowText(mDemo.name);
}
```
在接收方对话框类中定义一个成员变量,用于存储传递过来的数据:
```cpp
class SafeDataDlg : public CDialogEx
{
public:
Demo mDemo; //存储传递过来的数据
//...
};
```
阅读全文