函数原型
LRESULT WINAPI SendMessage( _In_ HWND hWnd, _In_ UINT Msg, _In_ WPARAM wParam, _In_ LPARAM lParam );
hWnd 是接收消息的窗口的句柄
Msg 是消息标识符wParam 是32位的特定附加信息。
lParam 是32位特定附加信息
1、例如: 对于SendMessage发给hwnd的消息,::SendMessage(hwnd,WM_SEVMSG,0,(LPARAM)&buf);
其响应函数为:
void CQQClientDlg::OnSevMsg(WPARAM wParam,LPARAM lParam)//处理服务器返回信息
{
CString temp=(char*)lParam;//获取服务器返回字符串
……
}
响应函数中的两个参数WPARAM wParam和LPARAM lParam,即为
SendMessage的后两个参数。
2、又如: 语句::SendMessage(handle1,msg,0,0); // 有许多消息只需要msg,可以不需要wParam和lParam的。
可以给一个程序发送个鼠标移动的消息
3、SendMessage函数发送消息,等待消息处理完成后,SendMessage才返回。也就是说,是等待SendMessage函数的消息响应函数返回后,SendMessage就返回了。而与其类似的PostMessage函数发送消息,不等待消息处理完成,立刻返回。也就是说,PostMessage只发送消息,消息有没有被送到则并不关心,只要发送了消息,便立刻返回。
4、类似这样的还有recv与recvfrom,默认情况下,recvfrom未收到消息就绝不会执行它下面的语句。
5、参考:http://blog.csdn.net/liangkaiyang/article/details/5931901
http://blog.csdn.net/liangkaiyang/article/details/5931901