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

 我来答
五哲的不靠谱tn
2016-07-18 · TA获得超过197个赞
知道小有建树答主
回答量:367
采纳率:0%
帮助的人:355万
展开全部
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
百度网友5722492f7
2016-08-25 · TA获得超过725个赞
知道小有建树答主
回答量:594
采纳率:0%
帮助的人:477万
展开全部
1.宏定义一个message
#define YOUR_MESSAGE 1120
2. 在你要发送这个消息的地方使用SendMessage来发送这个消息。
3. 在你要接受消息界面的MessageMap里面定义ON_MESSAGE(YOUR_MESSAGE, OnReceiveMessage)

OnRecevieMessage 是你自定义的当接受要这个消息时执行的响应函数。

望采纳。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
麒麟Kylin
2016-11-02 · 超过15用户采纳过TA的回答
知道答主
回答量:23
采纳率:0%
帮助的人:26.2万
展开全部
首先 需要一个自定义消息
#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消息的窗口发送
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
过眼云烟90而已
2016-10-21
知道答主
回答量:2
采纳率:0%
帮助的人:2098
展开全部
  1. 先定义一个消息宏 如:MESSAGE_***

  2. 定义一个消息函数:LRESULT Fun**(**,**)

  3. 声明消息ON_MESSAGE(MESSAGE_***,Fun**)

  4. 实现消息函数Fun**

  5. 要使用的地方:SendMessage(句柄,MESSAGE_***,null,null)

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式