MFC 如何处理父子窗口的数据交互 请你举一个例子说明
时间: 2024-09-26 16:17:44 浏览: 47
MFC(Microsoft Foundation Classes)是微软提供的一种用于Windows应用程序开发的基础类库,它在处理父子窗口数据交互时,通常会利用消息机制(Message Passing)。子窗口(Child Window)可以向其父窗口(Parent Window)发送消息,请求数据或者通知状态变化。
例如,假设有一个`CTextCtrl`作为父窗口,负责显示文本内容,而`CButton`作为子窗口,当用户点击按钮时需要更新父窗口的显示。子窗口可以通过`SendMessage()`函数将一个自定义的消息(比如WM_USER+1)与所需更新的数据一起发送给父窗口。在父窗口(`CTextCtrl`)的`OnCustomMessage()`回调函数中,你可以处理这个消息并更新显示的内容。
```cpp
// 子窗口 CButton 的响应
void CButton::OnClicked()
{
int dataToShare = ...; // 用户输入的新值
SendMessage(pDX, WM_USER + 1, (WPARAM)dataToShare); // 发送消息
}
// 父窗口 CTextCtrl 的消息处理
LRESULT CTextCtrl::OnCustomMessage(WPARAM wParam, LPARAM lParam)
{
int receivedData = static_cast<int>(lParam);
// 更新显示
SetWindowTextFormat(_T("%d"), receivedData);
return 0;
}
```
在这个例子中,`OnClicked()`会在用户点击后设置一个新的消息,并附带数据;`OnCustomMessage()`则捕获并处理这个消息,更新文本控件的内容。
阅读全文