mfc子窗口egit 传值给父窗口egit
时间: 2023-11-08 16:48:47 浏览: 93
MFC子窗口与父窗口之间消息的传递
在 MFC 中,子窗口可以通过消息机制将值传递给父窗口。以下是一个示例:
在子窗口中,定义一个消息常量和一个成员变量来保存要传递的值:
```cpp
// 子窗口的头文件
#define WM_MYVALUE (WM_USER + 1)
class CChildWnd : public CWnd
{
public:
afx_msg void OnButtonClicked();
private:
int m_nValue; // 要传递的值
};
```
在子窗口的实现文件中,处理按钮点击事件,并发送自定义消息给父窗口:
```cpp
// 子窗口的实现文件
void CChildWnd::OnButtonClicked()
{
m_nValue = 100; // 设置要传递的值
// 发送自定义消息给父窗口
::PostMessage(GetParent()->GetSafeHwnd(), WM_MYVALUE, (WPARAM)m_nValue, 0);
}
```
在父窗口类中,覆盖 `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);
}
```
通过以上步骤,在子窗口的按钮点击事件中设置要传递的值,并通过自定义消息将值传递给父窗口。在父窗口的消息处理函数中,可以获取传递的值并进行相应的处理。
阅读全文