消息响应函数OnMouseMove是怎么调用的

书上说,只要鼠标在窗口中移动就会调用OnMouseMove函数,但是具体是怎么调用的呢?调用了多少次呢?... 书上说,只要鼠标在窗口中移动就会调用OnMouseMove函数,但是具体是怎么调用的呢?调用了多少次呢? 展开
 我来答
潘达lya
推荐于2016-09-18 · TA获得超过1476个赞
知道小有建树答主
回答量:509
采纳率:0%
帮助的人:446万
展开全部
鼠标移动,系统会向与鼠标有重叠的窗口发送,鼠标移动消息,进程有一个消息队列,就是用来接收各种消息。。。进程的入口程序叫做winmain,他会有一个消息处理循环,就是读各种消息,然后根据消息所属窗口,发送给窗口过程函数(所有窗口都有一个用于消息处理的回调函数,有dispathmessage()这个函数回调,这是windows系统的一个API函数)。。。。窗口过程函数接到消息,就会处理消息,你的操作可以再消息处理中进行,但通常编程软件不这么做,窗口过程只做一件事就是,置位事件(一个WINDOWS内核对象,需要向windows申请创建,可以理解为一个开关)。。。。
窗口处理函数处理后返回,winmain就会调用事件处理函数,这个函数里存有各种类似OnMouseMove,这样的函数的函数指针,每当他发现某事件置位,他就会调用相关的回调函数。。

具体过程,鼠标移动->鼠标向系统发送消息->系统根据鼠标位置向拥有改窗口的进程发送消息->
进程中消息循环得到消息并调用dispathmessage()->dispathmessage()分析后根据消息所属窗口调用窗口处理函数->窗口处理函数置位对应事件信号退出处理->winmain调用事件处理函数->
事件处理函数调用OnMouseMove。。。。。就是这么个过程,不过在窗口处理函数之前的步骤是必须的,是windows系统的处理机制,之后的是软件为了提高程序效率加的。。。。
现在的编程软件都非常智能,你只需要向OnMouseMove内些内容,其他代码都是自动生成。。。。
追问
意思是,只要鼠标移动了位置就会发送一次消息,就会调用一次OnMouseMove吗?
追答
就是这样,不过这一切都是从鼠标驱动发送消息开始的。。。你写的长须不光是运行你写的代码,还有软件提供的框架代码,你的所有程序都是通过框架代码调用的,框架的代码你不用写。。。。
这种事编的越来越简单,到JS,只要在事件下写代码就行,但主要是框架人家弄好了,你就想做填空题一样。。。但实际上的过程都一样,都是我说的这个过程。。。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式