C语言 检测鼠标单击事件,同时忽略Windows控制台中的鼠标移动

hrysbysz  于 2023-01-20  发布在  Windows
关注(0)|答案(1)|浏览(124)

我有一个基于WSAWaitForMultipleEvents的循环,(除了其他东西),触发键盘和鼠标事件。首先设置:

SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), ENABLE_EXTENDED_FLAGS | ENABLE_PROCESSED_INPUT | ENABLE_MOUSE_INPUT);

然后使用:

GetStdHandle(STD_INPUT_HANDLE);

作为添加到WSAWaitForMultipleEvents的事件。
现在这个功能运行良好,但我只对点击鼠标时的鼠标位置感兴趣,但自然它也会触发鼠标移动,有没有办法从事件中排除鼠标移动,使WSAWaitForMultipleEvents只在点击鼠标时唤醒,而忽略鼠标移动?

ntjbwcob

ntjbwcob1#

是否有办法从事件中排除鼠标移动,使WSAWaitForMultipleEvents仅在单击鼠标时唤醒,并忽略鼠标移动?
不需要。使用ENABLE_MOUSE_INPUT意味着控制台句柄满足了窗口聚焦时对控制台窗口中 * 任何 * 鼠标活动的等待。这包括鼠标移动和鼠标点击。documentation甚至也这么说。因此,您只需接收和丢弃您不感兴趣的控制台事件。

相关问题