首页 文章

现代Windows输入API /用户交互API

提问于
浏览
5

Windows 8.1中提供了各种各样的用户交互API /技术:

  • 高级GUI框架(Windows窗体,WPF和许多其他第三方框架)

  • 直接操纵 - 也可能是高级操纵 .

  • 指针输入消息和通知(MSDN link) - 有趣,但键盘API模拟在哪里?

  • DirectInput / XInput - 标记为 legacy .

  • 原始输入 - 标记为 legacy .

  • WM_MOUSEMOVEWM_LBUTTONDOWNWM_KEYDOWN 等消息 - 标记为 legacy .

  • 其他,列于this MSDN page

任何人都可以给我一个这些API的简要概述,并揭示以下几个方面(对于每个方面):

  • 此API是基于另一个底层API还是在核心中实现的?

  • 这个API可以与哪些设备进行交互?

  • 任何独家功能,未在其他API中实现?

  • 性能/开销考虑因素:它的速度有多快(与其他人相比)?

所以我正在寻找 native up-to-date low-level full-featured 输入API,其中 won't become obsolete 在即将到来的 Windows 10 中,或者那些(如上所述)API的混合,最接近这个需求 .

任何人都可以制作某种比较表吗?

1 回答

  • 1

    指针输入消息和通知似乎是众所周知的消息周期的扩展,以支持多点触控设备 . 您可以轻松地将其与标准键盘消息集成,以获得功能齐全的API . 正如Retired Ninja指出的那样,消息传递API可能比大多数“现代”API更耐用 .

    我会避免任何偏离标准WinAPI的新技术,因为这些范例似乎来去匆匆 . 使低级输入处理程序变薄,松散耦合和标准化将有助于您的程序保持可维护性 .

    关于Windows消息传递API的问题是,每次引入新设备或功能时它都会得到扩展,并且它会像它获得的一样连贯 . 任何更高级别的界面最初可能都是不完整的,然后是过时的,并且可能无论如何都基于WinAPI调用 .

    我已经放弃使WndProc看起来很漂亮,有嵌套开关,多个if ... else等 . 现在我将它保存在自己的源文件中,它可以执行将值传递给外部代码的脏工作 .

相关问题