|
发表于 2020-1-30 13:27:01
|
显示全部楼层
也可发送消息
假若A窗口和B窗口都应是主窗口类下的一个成员
定义消息名:
#define 消息名(如UWM_SEND_AWND_TEXT) (WM_APP + 0x100)
//主窗口类
Class 主窗口类(如CMainFrame或 CMyMainDlg等)
{
CAwnd m_aWnd;
CBwnd m_bWnd;
proteted:
afx_msg LRESULT [得到消息函数名](WPARAM,LPARAM);
}
//BEGIN_MESSAGE_MAP(CTestDlg, CDialog)
ON_MESSAGE(消息名,得到消息函数名)
//END_MESSAGE_MAP()
//得到消息函数实体
LRESULT 主窗口类::得到消息函数名(WPARAM wParam, LPARAM lParam)
{
//这里只示例传来的是CString 类型对象,如果是CRect等任意类型对象要变为
//CRect *pRect =(CRect)wParam; CRect m_rect = *pRect; ......
LPCTSTR * pText = (LPCTSTR *)wParam;
CString getText= *pText;
m_bWnd.设置值的函数(getText); //实现将A窗体传来的字串wParam设置到B窗体
return 0;
}
Class CAwnd
{
}
CAwnd::要传出的函数名(如点击按纽或编辑框的EN_CHANGE事件)
{
UpdateData(TRUE);
[要传出的变量类型] myObj; //如CString myObj; CRect myObj等
::SendMessage(AfxGetApp()->GetMainWnd()->GetSafeHwnd(),消息名,(WPARAM)&myObj, 0);
}
class CBwnd
{
}
CBwnd::设置值的函数(CString getStr)
{
m_edtStr1= getStr;
UpdateDate(FALSE);
} |
|