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;

 

 

------------恢复内容结束------------

posted @ 2020-05-06 17:00  StudyToAll  阅读(866)  评论(0编辑  收藏  举报