【问题标题】:VC++ mouse eventsVC++ 鼠标事件
【发布时间】:2010-12-29 06:01:18
【问题描述】:

我想为鼠标事件编写一个控制台程序(只有鼠标滚动)。我如何在 VC++ 中做到这一点?应用程序将只监听滚动事件。

说明:如果用户向下滚动,桌面窗口会淡出,当用户向上滚动时会淡入。

在这里我只需要知道在控制台应用程序中监听鼠标事件。

注意:我正在使用win32 API进行开发,开发环境我使用的是VS2010。

【问题讨论】:

    标签: winapi visual-c++ mouseevent


    【解决方案1】:

    我自己从来没有真正这样做过。似乎响应鼠标事件的控制台应用程序几乎掩盖了它的本质和预期目的。通常,您只需要响应来自控制台应用程序的键盘输入并将鼠标的内容留给 GUI 应用程序。

    话虽如此,this tutorial 表示实际上可以从 Win32 控制台应用程序中捕获这些鼠标事件。通常,建议使用ReadConsoleInput function 并从它填充的INPUT_RECORD 结构中提取感兴趣的信息。唯一棘手的是对ReadConsoleInput 的调用是一个阻塞 调用,这意味着在触发输入事件之前它不会返回。您需要相应地构建应用程序的代码。鼠标事件在页面下方大约 3/4 处详细介绍。

    【讨论】:

    • @Cody:这正是我想要的。谢谢。我喜欢你在第一段中的解释。
    • @Ashwin:很高兴这对你有用。我首先想到的是全局挂钩,这可能不是最好的解决方案,所以我也学到了一些新东西!
    • @Cody:我玩了一些全局挂钩,但它崩溃了,我无法让它按我需要的方式工作。这很好用。它使我的设计保持简单。
    • @Cody:嘿,Cody,我很想知道,是否有任何 API 或任何适用于 Linux 和 Windows 的模块?处理鼠标事件。
    • @Ashwin:我绝对不是 Linux 程序员,所以我可能不是提出这个要求的最佳人选。但我最好的猜测告诉我没有。 Linux 和 Windows 处理 I/O 的方式不同,您不太可能找到统一的库。但是您很少能为多个平台编译代码一次,所以我不太确定这样做有什么好处。如果您想从一些更有资格的人那里获得意见,请提出一个新问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-17
    • 1970-01-01
    • 1970-01-01
    • 2011-01-25
    • 2016-06-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多