作者:技术小菜鸟 | 来源:互联网 | 2023-05-18 12:29
windows产生WM_LBUTTONDBLCLK消息时,实际上还伴随了两个WM_LBUTTONUP消息,因为我的程序中对这两个消息有不同的处理,所以希望当是WM_LBUTTONDBLCLK时,
windows产生WM_LBUTTONDBLCLK消息时,实际上还伴随了两个WM_LBUTTONUP消息,
因为我的程序中对这两个消息有不同的处理,所以希望当是WM_LBUTTONDBLCLK时,
伴随产生的WM_LBUTTONUP忽略掉,请问怎么办阿?????
6 个解决方案
添加一个状态,正常状态为ST_NORMAL,如WM_LBUTTONDBLCLK则状态为ST_DBCLICK.
在WM_LBUTTONUP判断状态是否为ST_DBCLICK,是则将状态改为ST_NORMAL不做其他处理。
仔细看一下双击时产生的消息顺序,就知道楼上的方法不行:
双击时的消息顺序如下:
WM_LBUTTONDOWN
WM_LBUTTONUP
WM_LBUTTONDBLCLK
WM_LBUTTONUP
在WM_LBUTTONDBLCLK消息产生之前,已经有一个WM_LBUTTONUP 消息产生了,此时状态
还是st_normal.还是会处理WM_LBUTTONUP消息。:-(