LBUTTONDOWN左点击响应函数, 我一直按着左键,他是怎么响应的?
我按着左键不放,他是只调用了一次响应函数,还是一直在调用这个函数?同理还有onmousemove函数,我鼠标放着不动,他是一直按照一定频率去调用,还是不去调用,等我移动的...
我按着左键不放,他是只调用了一次响应函数,还是一直在调用这个函数?
同理还有onmousemove函数, 我鼠标放着不动,他是一直按照一定频率去调用,还是不去调用,等我移动的时候才调用?而停下来的时候不调用? 展开
同理还有onmousemove函数, 我鼠标放着不动,他是一直按照一定频率去调用,还是不去调用,等我移动的时候才调用?而停下来的时候不调用? 展开
1个回答
展开全部
LBUTTONDOWN的话只是在你摁下去的时候会发生,你一直摁着的话也不会再次相应。
onmousemove的话我记得好像频率是不一定的。如果鼠标移动则消息会被一只转发,函数会被一直调用,但是当鼠标空闲的话是过一段时间才会出来一次的。对于用户可以认为即使鼠标静止,这个函数也可能会被调用
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键是否同时被按着等
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询