LBUTTONDOWN左点击响应函数, 我一直按着左键,他是怎么响应的?

我按着左键不放,他是只调用了一次响应函数,还是一直在调用这个函数?同理还有onmousemove函数,我鼠标放着不动,他是一直按照一定频率去调用,还是不去调用,等我移动的... 我按着左键不放,他是只调用了一次响应函数,还是一直在调用这个函数?

同理还有onmousemove函数, 我鼠标放着不动,他是一直按照一定频率去调用,还是不去调用,等我移动的时候才调用?而停下来的时候不调用?
展开
 我来答
MercelProust
2013-12-04 · TA获得超过1082个赞
知道小有建树答主
回答量:1287
采纳率:0%
帮助的人:617万
展开全部
LBUTTONDOWN的话只是在你摁下去的时候会发生,你一直摁着的话也不会再次相应。
onmousemove的话我记得好像频率是不一定的。如果鼠标移动则消息会被一只转发,函数会被一直调用,但是当鼠标空闲的话是过一段时间才会出来一次的。对于用户可以认为即使鼠标静止,这个函数也可能会被调用
追问
那我的onmousemove的nflags参数是怎么回事啊?我按住左键不放,然后移动鼠标。
onmousemove的nflags参数值是什么?onmousemove可是不断的被调用,而左键只发送一次消息,那这样说onmousemove的nflags参数值应该不包含LButton虚键啊?
追答
具体的函数说明看下面这个页面的:
http://msdn.microsoft.com/zh-cn/library/3158baat%28v=vs.90%29.aspx
你要是摁着左键,那么应该是MK_LBUTTON的值

不是说左键只发送一次消息,而是LBUTTONDOWN消息只是在左键被恩下时会被发送一次,这和onmousemove的参数之间是没有关系的,一个是系统发送过来的消息,供你调用响应事件用,另一个只是一个外部调用你的onmousemove的时候传给你的参数,是没有什么关系的。你可以认为在消息循环的地方有个nfalg,在lbuttondown消息被响应的时候被赋为MK_LBUTTON,在lbuttonup消息的响应内被重新清零,在onmousemove的时候被作为参数传递进来

建议看下《深入浅出MFC》的关于WIN32程序的模型模拟的那几章,可以对MFC的程序框架模型有个好的了解,方便学习

上面说错了,值可能不是MK_LBUTTON,而是MK_LBUTTON对应的位会被设1,微软的这些flag基本应该都是按位来设值的,具体的值要看你当时的具体情况,比如你的CTRL键是否同时被按着等
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式