中易网

怎么处理SendMessage()发来的消息

答案:5  悬赏:40  
解决时间 2021-12-29 15:29
怎么处理SendMessage()发来的消息
最佳答案
1. 在类的声明处加入afx_msg打头的消息响应函数声明。
 2.在cpp文件中实现该函数(参数依据你自己的设计,WPARAM和LPARAM都能传递数据,不用也可)。
3.在该类的DECLARE_MESSAGE_MAP与END_MESSAGE_MAP之间插入ON_MESSAGE(消息名,函数名)。


消息本身是作为一个记录传递给应用程序的,这个记录中包含了消息的类型以及其他信息。例如,对于单击鼠标所产生的消息来说,这个记录中包含了单击鼠标时的坐标。这个记录类型叫做TMsg,它在Windows单元中是这样声明的: 

type 
TMsg = packed record 
hwnd: HWND; //窗口句柄 
message: UINT;//消息常量标识符 
wParam: WPARAM ;// 32位消息的特定附加信息 
lParam: LPARAM ;// 32位消息的特定附加信息 
time: DWORD;//消息创建时的时间 
pt: TPoint; //消息创建时的鼠标位置 
end ; 

消息中有什么? 
是否觉得一个消息记录中的信息像希腊语一样?如果是这样,那么看一看下面的解释:hwnd 32位的窗口句柄。窗口可以是任何类型的屏幕对象,因为Win32能够维护大多数可 
视对象的句柄(窗口、对话框、按钮、编辑框等)。message 用于区别其他消息的常量值,这些常量可以是Windows单元中预定义的常量,也 
可以是自定义的常量。 
wParam 通常是一个与消息有关的常量值,也可能是窗口或控件的句柄。 
lParam 通常是一个指向内存中数据的指针。由于WParam、lParam和Pointer都是32位的,因此,它们之间可以相互转换。
全部回答
看到SendMessage的第一个参数没?是一个窗口句柄,消息一般情况下都是由窗口来处理,这也符合了一般WIN32程序的设计思想。MFC中,既然是窗口的话,必然是继承自CWnd的自定义类。 消息的映射至少需要以下三个步骤,1.在类的声明处加入afx_msg打头的消息响应函数声明。2.在cpp文件中实现该函数(参数依据你自己的设计,WPARAM和LPARAM都能传递数据,不用也可)。3.在该类的DECLARE_MESSAGE_MAP与END_MESSAGE_MAP之间插入ON_MESSAGE(消息名,函数名)。 如果想学习MFC的消息映射机制,唯有阅读其源码。在所有的应用程序框架中,MFC是唯一一个需要通过阅读源码深入理解其内部机制及原理的,否则无法独立开发基于MFC之APP。
首先 定义 一个消息,就是#define 之类的,在一楼所说的添加 消息响应函数 到DECLARE_DESSAGE_MAP()里面,接着就在函数里面可以实现你想要的功能了,sendmessage函数的 参数 你应该知道了,
一运行就掉足.webbrowser不克不及接收sendmessage发来的消息,也不克不及接收 postmessage发来的消息,哪位高手点拨,多谢!多谢!
需要把该消息映射到处理涵数处理 MFC一般放在类的DECLARE_MESSAGE_MAP()前
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
貞賢的意思是什么?貞賢的释义是什么啊?
帽儿头的意思是什么?帽儿头的释义是什么啊?
貂侍的意思是什么啊?请解释下!
岩层的意思是什么?岩层的释义是什么啊?
五老峰用英语怎么说?
逸侣的意思是什么啊?请解释下!
小宇干洗行地址在什么地方,想过去办事
德语deiner ,deinem有什么区别
後天失調的意思是什么?後天失調的释义是什么
C语言 密码问题:先输入一个数字k(0<k<10),在
喷射飞船是不是比中港城的船速度快?
led数字显示屏的数字用多少帧的摄像头能看见
甑瓾的意思是什么啊?请解释下!
臨訣的意思是什么?臨訣的释义是什么啊?
我家庭困难 想在唐山酒店找一份来钱快的工作
推荐资讯
哪位晓得空气能热水器主机价格
13207592282是那里的号码户主是谁
闲串的意思是什么啊?请解释下!
大岔河村委会地址有知道的么?有点事想过去!
vivox5m前置摄像头不清楚怎么办?
攒积的意思是什么?攒积的释义是什么啊?
神谋的意思是什么啊?请解释下!
跟腱断裂后,在运动有什么护具么?
长坡工商所地址有知道的么?有点事想过去!
婴儿(女)腹股沟疝气怎么办?4个月
庸贱的意思是什么啊?请解释下!
老嬷嬷的意思是什么啊?请解释下!
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?