Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/149.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 现代Windows输入API/用户交互API_C++_C_Windows_Winapi - Fatal编程技术网

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

C++ 现代Windows输入API/用户交互API,c++,c,windows,winapi,C++,C,Windows,Winapi,Windows 8.1中提供了多种用户交互API/技术: 高级GUI框架(Windows窗体、WPF和许多其他第三方框架) 直接操纵——可能也是高水平的 指针输入消息和通知()–很有意思,但是keybord API的类似物在哪里 DirectInput/XInput–标记为旧版 原始输入–标记为旧版 WM\u MOUSEMOVE,WM\u LBUTTONDOWN,WM\u KEYDOWN等消息–标记为遗留 其他,列在 有谁能给我简要介绍一下这些API,并揭示以下方面(针对每一个方面): 这

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

  • 高级GUI框架(Windows窗体、WPF和许多其他第三方框架)
  • 直接操纵——可能也是高水平的
  • 指针输入消息和通知()–很有意思,但是keybord API的类似物在哪里
  • DirectInput/XInput–标记为旧版
  • 原始输入–标记为旧版
  • WM\u MOUSEMOVE
    WM\u LBUTTONDOWN
    WM\u KEYDOWN
    等消息–标记为遗留
  • 其他,列在
有谁能给我简要介绍一下这些API,并揭示以下方面(针对每一个方面):

  • 这个API是基于另一个底层API还是在核心中实现的
  • 此API可以与哪些设备交互
  • 是否有其他API中未实现的专有功能
  • 性能/开销考虑:它的速度有多快(与其他产品相比)
因此,我正在寻找本机最新的低级全功能输入API,不会在即将推出的Windows 10中过时,也不会在最接近这一需求的(如上所述)API中过时


有人能做一些比较表吗?

指针输入消息和通知似乎是众所周知的消息周期的延伸,以支持多点触控设备。您可以轻松地将其与标准键盘消息集成,以获得功能齐全的API。正如退休的忍者所指出的,消息传递API可能会比大多数“现代”API更持久

我会避免任何与标准WinAPI不同的新奇技术,因为这些范例似乎来来往往。使低级输入处理程序精简、松散耦合和标准化将有助于您的程序保持可维护性

Windows消息传递API的一个特点是,每次引入新设备或功能时,它都会得到扩展,这与它的一致性差不多。任何更高级别的接口起初都可能是不完整的,然后就过时了,而且无论如何都可能基于WinAPI调用


我已经放弃了让WndProc看起来很漂亮,使用嵌套开关、多if…else等。。现在我将它保存在自己的源文件中,在那里它可以完成将值传递给外部代码的肮脏工作。

微软的文档从来都不是特别完整或正确的。但将其营销信号视为有意义的可能是正确的,因为这种印象通常是由科技作家传达的,无论是有意还是无意。微软用了两个Windows版本,接二连三的投诉,大概是销量下降,才恢复了“开始”菜单,但据我所知,当时只是半心半意地(还没有使用Windows 10)。就在那次崩溃之前,微软采取了极端的降价市场,修复了Vista的一些过剩。不管怎样,你所说的“这个API”是什么意思。请讲清楚。您列出了无数个API,并询问了一个未指明的特定API——哪个?我所说的“这个API”是指“我上面给出的列表中的每个API”。仅仅因为某些东西被标记为legacy并不意味着它将消失。Windows 10将需要使用那些已经存在的方法运行数以百万计的应用程序。@RetiredInja当然,但是当新的API/框架出现时,这意味着有更一致的方法来做事情。