3

有没有办法使用 c# 在控制台应用程序中捕获鼠标滚轮事件,就像在 GUI / Window 应用程序中捕获鼠标滚轮事件一样?

我想这样做以仅滚动控制台中的部分文本。

我已经在谷歌上搜索过这个,但我能找到的只是 Window 应用程序中的鼠标滚轮事件。

4

2 回答 2

7

调用ReadConsoleInput函数。MOUSE_WHEELED当您的控制台上的轮子旋转时,您将收到一个事件。

于 2013-04-06T22:23:35.157 回答
3

你可以用“两个”部分来做到这一点:

  1. 在鼠标滚轮事件上创建全局系统挂钩( 这里的好例子)

  2. 第二次使用 PInvoke 检查您的控制台是否处于活动状态(您可以在此处找到示例: 确定当前应用程序是否已激活(具有焦点)

  3. 您可以在 2 中扩展功能以在此处获取窗口 RECT检查并将鼠标位置与窗口位置相交

于 2013-04-06T22:04:29.070 回答