vs中使用SendMessage函数自定义消息函数
------------恢复内容开始------------
1、函数原型:
LRESULT SendMessage(
HWND hWnd, //消息传递的目标窗口或线程的句柄。
UINT Msg, //消息类别(这里可以是一些系统消息,也可以是自己自定义(宏)
WPARAM wParam, //第一个消息参数
LPARAM lParam); //第一个消息参数
如下语句:
SendMessageW(hwnd,WM_SIGNAL, NULL, psocket->m_nNewSignalLength);
hwnd:是我发送的消息的窗口的句柄。
WM_SIGNAL:是自定义的消息类别。
在头文件<stdafx.h>中定义消息:
#define WM_SIGNAL WM_USER+30
当然也可以定义更多的消息:
#define WM_SIGNAL2 WM_USER+20
ON_MESSAGE(WM_SIGNAL, &CRadarControlDlg::OnSignalSave)
我们发了一个消息出去,那么接收方要能识别这个消息是干什么的,就是通过消息类别来区分的,
并且开始去执行该消息对应的函数。
afx_msg LRESULT OnSignalSave(WPARAM wParam, LPARAM lParam)
{
//在此处写入代码信息
return 0;
}
注意事项:
1:使用了afx_msg,并且要将:afx_msg LRESULT OnSignalSave(WPARAM wParam, LPARAM lParam);
写到头文件的
AFX_MSG
//写到这里
......
AFX_MSG
2:参数有2个,WPARAM wParam, LPARAM lParam,一定要写进来,哪怕没有用也要写;
3:返回值类型用LRESULT,完了要return 0;
------------恢复内容结束------------