1.发送消息方
函数:LRESULT SendMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM IParam)。
第一个参数是将发送的目的应用程序或者对象的句柄,可通过GetForegroundWindow()获得当前窗口句柄,也可通过上级对象调用的方式获取该句柄。
第二个参数是指发送的消息,需要在发送方和接收方有同样的消息。常见的双方同时#define WM_MYMESSAGE WM_USER+101,也可在stdafx.h文件中定义。WM_MYMESSAGE 是要发送的消息。
(WPARAM wParam,LPARAM IParam)是两个要传递的参数。可以这样写(WPARAM)a,(LPARAM)b。a,b是传递的参数。
2.接收方响应消息
定义要响应消息的函数: afx_msg void OnResponseFunction();在头文件的AFX_MSG中添加。
在消息映射BESIN_MESSAGE_MAP中添加ON_MESSAGE(WM_MYMESSAGE, OnResponseFunction),把消息和要响应的函数对应起来。
在响应消息函数LRESULT OnResponseFunction(WPARAM wParam, LPARAM lParam)中添加响应内容。
3.整个过程是单线程的。发送方等待接收方处理完消息响应后,才进行下一步操作。
本文介绍了Windows环境下消息传递的基本原理及实现方法,包括如何使用SendMessage函数发送消息,接收方如何定义消息响应函数并通过消息映射机制处理消息。整个过程遵循单线程模型。
5247

被折叠的 条评论
为什么被折叠?



