上一篇讲了一下mfc 通过消息映射通知别的窗口去更改控件状态,这篇讲一下如何发送自定义消息。
背景:我在A窗口的一个edit control 内输入内容后B窗口显示我输入的内容。
方案:可以用控件失去焦点这一事件代替按钮事件进行触发,同样的消息映射 主要是通过sendmessage完成
LRESULT SendMessage(
HWND hWnd, // handle of destination window
UINT Msg, // message to send
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
);
wparam 与lparam是可以自己定义的,是在发送消息过程中自己可以夹带的私货,通过这个发送我们需要的信息
CString str;
m_edit.GetWindowTextW(str);
pwnd->SendMessage(WM_message,(WPARAM)&str,0);
直接发送CString类型数据是不行的,可以加上&发送地址;
在接收cpp中 CString *data=(CString*) wParam ;
SetDlgItemText(IDC_edit1,*data);
这样即可完成输入信息的发送与接收。
所谓万变不离其宗