鼠标消息 vc++
当我一直按下鼠标左键时,都会产生什么消息?WM_LBUTTONDOWN消息会不会一直向指定窗口发送?怎样判断按下键的次数?谢谢。。。。。...
当我一直按下鼠标左键时,都会产生什么消息? WM_LBUTTONDOWN消息会不会一直向指定窗口发送? 怎样判断按下键的次数?
谢谢。。。。。 展开
谢谢。。。。。 展开
3个回答
展开全部
一直按下,只有一个 wm_lbuttondown消息。
按下键的次数为一
当然在程序中可以用一个循环 读取键状态 GetKeyState();
硬件结构上,键盘鼠标都是硬件控制定时扫描按键的状态,来产生原始的wm_lbuttondown wm_lbuttonup, wm_keydown wm_keyup的。
但是线程的预处理函数内部,对键鼠消息做了不同处理,鼠标键一直按下的话,不管。键盘键一直按下,会不断产生 wm_char,wm_syschar消息发送给相应处理函数。 这儿就有了键盘按下键的次数一说,(其实是由线程预处理的循环周期决定的)。
按下键的次数为一
当然在程序中可以用一个循环 读取键状态 GetKeyState();
硬件结构上,键盘鼠标都是硬件控制定时扫描按键的状态,来产生原始的wm_lbuttondown wm_lbuttonup, wm_keydown wm_keyup的。
但是线程的预处理函数内部,对键鼠消息做了不同处理,鼠标键一直按下的话,不管。键盘键一直按下,会不断产生 wm_char,wm_syschar消息发送给相应处理函数。 这儿就有了键盘按下键的次数一说,(其实是由线程预处理的循环周期决定的)。
展开全部
WM_LBUTTONDOWN只在按下的那一时刻才有。
可以在响应WM_LBUTTONDOWN时启动一个定时器,定时器里统计次数,统计周期就是定时器的间隔时间,自己设定;当收到WM_LBUTTONUP消息时停止定时。
可以在响应WM_LBUTTONDOWN时启动一个定时器,定时器里统计次数,统计周期就是定时器的间隔时间,自己设定;当收到WM_LBUTTONUP消息时停止定时。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
长见识
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询