永发信息网

vc中怎么使用SendMessage自定义消息函数

答案:4  悬赏:0  手机版
解决时间 2021-02-09 17:27
  • 提问者网友:玫瑰园
  • 2021-02-09 10:18
vc中怎么使用SendMessage自定义消息函数
最佳答案
  • 五星知识达人网友:罪歌
  • 2021-02-09 11:31
SendMessage的基本结构如下: SendMessage(HWNDhWnd, //消息传递的目标窗口或线程的句柄。UINTMsg, //消息类别(这里可以是一些系统消息,也可以是自己定义,下文具体介绍,)WPARAMwParam, //参数1 (WPARAM 其实是与UINT是同种类型的, //在vc编译器中右键有个“转到WPARAM的定义”的选项可以查看。LPARAMlParam); //参数2 其中一些参数的由来如下: //typedef unsigned int UINT; //typedef UINT WPARAM; //typedef LONG LPARAM; //typedef LONG LRESULT; 例如可以用以下语句: ::SendMessage(this-m_hWnd, WM_MY_DOSOME, (WPARAM) 0, (LPARAM)0); 这里我发送的消息是本窗体接收的,所以句柄用:this-m_hWnd 这里的消息类别WM_MY_DOSOME就是我自定义的, 在接收消息的窗体或线程所在的头文件里: #define WM_MY_DOSOMEWM_USER+1//do something
全部回答
  • 1楼网友:酒安江南
  • 2021-02-09 15:04
1. 先定义一个消息宏 如:MESSAGE_*** 2. 定义一个消息函数:LRESULT Fun**(**,**) 3. 声明消息ON_MESSAGE(MESSAGE_***,Fun**) 4. 实现消息函数Fun** 5. 要使用的地方:SendMessage(句柄,MESSAGE_***,null,null)
  • 2楼网友:青灯有味
  • 2021-02-09 14:12
首先 需要一个自定义消息 #define WM_MYMESSAGE WM_USER + 1 然后 需要一个消息响应函数 LRESULT OnMyMessage(WPARAM wParam, LPARAM lParam); 最后将自定义消息与消息响应函数关联 BEGIN_MESSAGE_MAP(CMyDlg, CDialogEx)//在这个下面 任意位置 ... ON_MESSAGE(WM_MYMESSAGE, OnMyMessage)//添加这句话 ... END_MESSAGE_MAP()//这句上面 之后就可以SendMessage了 例如 SendMessage(WM_MYMESSAGE, NULL, NULL);//同一个窗口里 HWND hMyWnd;//这个是要发送窗口的句柄 ::SendMessage(hMyWnd, WM_MYMESSAGE, NULL, NULL);//针对 需要接收WM_MYMESSAGE消息的窗口发送
  • 3楼网友:你可爱的野爹
  • 2021-02-09 12:54
1.宏定义一个message #define YOUR_MESSAGE 1120 2. 在你要发送这个消息的地方使用SendMessage来发送这个消息。 3. 在你要接受消息界面的MessageMap里面定义ON_MESSAGE(YOUR_MESSAGE, OnReceiveMessage) OnRecevieMessage 是你自定义的当接受要这个消息时执行的响应函数。 望采纳。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯