Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.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++ DirectX 11输入读取方法_C++_Directx 11 - Fatal编程技术网

C++ DirectX 11输入读取方法

C++ DirectX 11输入读取方法,c++,directx-11,C++,Directx 11,我正在编写一个应用程序,我需要将输入包括到这个应用程序中。我现在有点糊涂了。我听说有四种选择。 1.基本windows消息系统, 2.直接输入8, 3.原始输入, 4.辛普特 我需要区分: 1.从小写字母到大写字母, 2.来自其他字符的箭头和特殊键(我的意思是,当usgin翻译消息时,左箭头键被翻译为%,这是个问题,因为我需要使用它们), 3.如果可以将数据作为消息进行处理,那就太好了 现在,我的问题是:您将使用这四个选项中的哪一个来实现输入?也许你还有别的好办法 另外,我需要操作鼠标和键盘。如

我正在编写一个应用程序,我需要将输入包括到这个应用程序中。我现在有点糊涂了。我听说有四种选择。 1.基本windows消息系统, 2.直接输入8, 3.原始输入, 4.辛普特

我需要区分: 1.从小写字母到大写字母, 2.来自其他字符的箭头和特殊键(我的意思是,当usgin翻译消息时,左箭头键被翻译为%,这是个问题,因为我需要使用它们), 3.如果可以将数据作为消息进行处理,那就太好了

现在,我的问题是:您将使用这四个选项中的哪一个来实现输入?也许你还有别的好办法


另外,我需要操作鼠标和键盘。

如果您不需要操纵杆gamepad支持,普通窗口消息适用于一切

要读取屏幕上显示的字符数据,如输入到输入框中的文本,WM_CHAR将为
a
a
返回不同的代码

对于左/右箭头等输入键,可以使用/

Windows消息也适用于鼠标单击,对于鼠标位置,我更喜欢使用并将其转换为客户端窗口坐标


对于其他输入设备是首选。

如果您不需要操纵杆gamepad支持,普通窗口消息适用于一切

要读取屏幕上显示的字符数据,如输入到输入框中的文本,WM_CHAR将为
a
a
返回不同的代码

对于左/右箭头等输入键,可以使用/

Windows消息也适用于鼠标单击,对于鼠标位置,我更喜欢使用并将其转换为客户端窗口坐标


对于其他输入设备是首选。

Ok,似乎是合法的。我想知道RawInput或DirectInput是否更快,如果是,那么要快多少?为什么不使用MouseEvent消息中的lParam来获取x和y鼠标位置?我想这是因为鼠标移动是我希望它尽可能快的一个区域,我不希望每次鼠标移动都发送消息。我只是用
GetCursorPos
在一帧的开始处获取光标位置,它对我来说总是很好。但这并不意味着WM_MOUSEMOVE不起作用。此外,输入99.99%的时间不会成为您的瓶颈,因此不必担心它的性能。Windows消息是在Windows编程中检查输入的建议方法。但是如何阻止发送wm_mousemove消息?我不阻止它Windows仍然将该消息发送到窗口,我只是在我的
WndProc
中不为它做任何事,所以它属于默认处理程序,并且会调用DefWindowProc。但是现在,假设我按了一个左箭头键。系统生成消息wm_keydown。然后我从队列中偷看,现在怎么办?我该不该翻译?如果我这样做,那么我收到%,如果现在,那么我收到箭头,而且如果我翻译它,我将在以后收到两条消息wm_keydown和wm_char。我有点搞不清楚如何区分%和箭头…好吧,似乎是合法的。我想知道RawInput或DirectInput是否更快,如果是,那么要快多少?为什么不使用MouseEvent消息中的lParam来获取x和y鼠标位置?我想这是因为鼠标移动是我希望它尽可能快的一个区域,我不希望每次鼠标移动都发送消息。我只是用
GetCursorPos
在一帧的开始处获取光标位置,它对我来说总是很好。但这并不意味着WM_MOUSEMOVE不起作用。此外,输入99.99%的时间不会成为您的瓶颈,因此不必担心它的性能。Windows消息是在Windows编程中检查输入的建议方法。但是如何阻止发送wm_mousemove消息?我不阻止它Windows仍然将该消息发送到窗口,我只是在我的
WndProc
中不为它做任何事,所以它属于默认处理程序,并且会调用DefWindowProc。但是现在,假设我按了一个左箭头键。系统生成消息wm_keydown。然后我从队列中偷看,现在怎么办?我该不该翻译?如果我这样做,那么我收到%,如果现在,那么我收到箭头,而且如果我翻译它,我将在以后收到两条消息wm_keydown和wm_char。我有点困惑我怎么能区分%和箭头。。。