2013年1月14日星期一

【转】鼠标双击消息

鼠标双击消息

http://www.delphibbs.com/delphibbs/dispq.asp?lid=1610388

我用spy++对一个程序进行消息截取,主要是想看看WM_LBUTTONDBLCLK消息如何发送的,结果如下: 
WM_LBUTTONDOWN, 
WM_LBUTTONUP, 
WM_LBUTTONDBLCLK,(是不是代替了WM_LBUTTONDOWN?这是我不明白的地方[:D]) 
WM_LBUTTONUP,(这个消息还有用吗?) 
.... 
请各位大侠不惜赐教


这几个消息是不同的. 
WM_LBUTTONDOWN:指你鼠标按下时触发 
WM_LBUTTONUP?:指你鼠标松开时触发! 
WM_LBUTTONDBLCLK:只鼠标双击完成时触发. 


感谢笑面虎的答复! 
但是,我想问的不是这个问题.我的问题是: 
WM_LBUTTONDOWN, 
WM_LBUTTONUP, 
WM_LBUTTONDBLCLK, 
WM_LBUTTONUP, 
上面的消息是一个鼠标双击消息的全过程. 
按照我的想法鼠标双击消息的发送是不是在 
WM_LBUTTONDOWN, 
WM_LBUTTONUP, 
WM_LBUTTONDOWN, 
WM_LBUTTONUP, 
消息后发送一个WM_LBUTTONDBLCLK鼠标双击消息,但是实际上发送的过程是 
WM_LBUTTONDOWN, 
WM_LBUTTONUP, 
[b]WM_LBUTTONDBLCLK[/b], 
WM_LBUTTONUP, 
消息WM_LBUTTONDBLCLK是不是代替了WM_LBUTTONDOWN, 
最后发送的WM_LBUTTONUP消息还有什么意义吗?[:D] 


鼠标两次单击如果在一定的时间内发生,WINDOWS就会认为第二次单击为双击 
既然双击也是按下,怎么能不发送WM_LBUTTONUP消息呢? 
GetDoubleClickTime取得连续两次鼠标单击之间会被处理成双击事件的间隔时间 

摘自:http://www.cnblogs.com/railgunman/archive/2011/01/02/1924321.html

没有评论: