Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/152.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
如果';,则不会触发GetAsyncKeyState(188)';有压力吗? 我试着写一个C++应用程序。 但是,如果我按下qwerty键盘上的,,则“GetAsyncKeyState(188)=-32767”不起任何作用。 出于某种原因,GetAsyncKeyState确实适用于字母表中的键(如a、b、c等) 但对于诸如“,”或“.”之类的符号,则不适用。_C++_Winapi - Fatal编程技术网

如果';,则不会触发GetAsyncKeyState(188)';有压力吗? 我试着写一个C++应用程序。 但是,如果我按下qwerty键盘上的,,则“GetAsyncKeyState(188)=-32767”不起任何作用。 出于某种原因,GetAsyncKeyState确实适用于字母表中的键(如a、b、c等) 但对于诸如“,”或“.”之类的符号,则不适用。

如果';,则不会触发GetAsyncKeyState(188)';有压力吗? 我试着写一个C++应用程序。 但是,如果我按下qwerty键盘上的,,则“GetAsyncKeyState(188)=-32767”不起任何作用。 出于某种原因,GetAsyncKeyState确实适用于字母表中的键(如a、b、c等) 但对于诸如“,”或“.”之类的符号,则不适用。,c++,winapi,C++,Winapi,根据文档,来自GetAsyncKeyState()的返回值可以设置多个位,具体取决于之前是否按下该键,如果其他程序同时调用该函数,则返回值也可能有所不同 如果密钥已关闭,返回码(带符号的短码)将为负数,因此,如果您只想测试密钥是否已关闭,最简单的方法是: if (GetAsyncKeyState(VK_OEM_COMMA) < 0) { } if(GetAsyncKeyState(VK_OEM_逗号)

根据文档,来自
GetAsyncKeyState()
的返回值可以设置多个位,具体取决于之前是否按下该键,如果其他程序同时调用该函数,则返回值也可能有所不同

如果密钥已关闭,返回码(带符号的短码)将为负数,因此,如果您只想测试密钥是否已关闭,最简单的方法是:

if (GetAsyncKeyState(VK_OEM_COMMA) < 0) { }
if(GetAsyncKeyState(VK_OEM_逗号)<0){
编辑:以下是一些适用于我的示例代码:

#include <windows.h>

int _tmain(int argc, _TCHAR* argv[])
{
    for (;;)
    {
        printf("comma is %s\n", GetAsyncKeyState(VK_OEM_COMMA) < 0 ? "down" : "not down");
    }
    return 0;
}
#包括
int _tmain(int argc,_TCHAR*argv[]
{
对于(;;)
{
printf(“逗号为%s\n”,GetAsyncKeyState(VK_OEM_逗号)<0?”向下:“未向下”);
}
返回0;
}

告诉我们您是如何调用它的。您想做什么?更好的是
GetAsyncKeyState(VK_*)&0x8000
。为什么更好?:)@JonathanPotter,更清楚的是,它是被检查的最高有效位。出于某种原因,GetAsyncKeyState确实适用于a、b、c。。。。但不像“,”或“.”如果有人给你一个关于如何正确检查状态的答案。。。