mfc子窗口传值给父窗口
时间: 2023-11-08 14:48:47 浏览: 153
MFC子窗口与父窗口之间消息的传递
在 MFC 中,子窗口可以通过消息机制将值传递给父窗口。以下是一种传递值的常见方法:
1. 在子窗口的头文件中定义一个自定义的消息常量,例如:
```cpp
#define WM_MYVALUE (WM_USER + 1)
```
2. 在子窗口中,当需要传递值给父窗口时,使用 `PostMessage` 或 `SendMessage` 函数发送自定义消息:
```cpp
// 例如,在按钮点击事件中传递值 100 给父窗口
::PostMessage(GetParent()->GetSafeHwnd(), WM_MYVALUE, 100, 0);
```
3. 在父窗口类中,覆盖 `OnWndMsg` 函数以处理自定义消息:
```cpp
BOOL CParentWnd::OnWndMsg(UINT message, WPARAM wParam, LPARAM lParam, LRESULT* pResult)
{
if (message == WM_MYVALUE)
{
int value = (int)wParam; // 获取传递的值
// 在这里可以对传递的值进行处理
// ...
return TRUE; // 返回 TRUE 表示已经处理了消息
}
return CWnd::OnWndMsg(message, wParam, lParam, pResult);
}
```
通过以上步骤,子窗口可以将值通过自定义消息传递给父窗口。在父窗口的消息处理函数中,可以获取传递的值并进行相应的处理。
阅读全文