C++ C++;和GetAsyncKeyState()函数

C++ C++;和GetAsyncKeyState()函数,c++,key,winapi,C++,Key,Winapi,因为它只给出大写字母,你知道如何得到小写字母吗?? 如果用户同时按下SHIFT+K或CAPSLOCK,等等,我想得到小写。。 这样或那样可能吗 谢谢,正如您正确指出的,它代表一个键,而不是大写或小写。因此,对::GetASyncKeyState(VK_SHIFT)的另一个调用可能会帮助您确定SHIFT键是否已按下,然后您将能够适当地修改后续调用的结果。假设“c”是输入GetASyncKeyState()的变量 您可以使用以下方法来检测是打印大写字母还是小写字母 string out = "";

因为它只给出大写字母,你知道如何得到小写字母吗?? 如果用户同时按下SHIFT+K或CAPSLOCK,等等,我想得到小写。。 这样或那样可能吗


谢谢,

正如您正确指出的,它代表一个键,而不是大写或小写。因此,对::GetASyncKeyState(VK_SHIFT)的另一个调用可能会帮助您确定SHIFT键是否已按下,然后您将能够适当地修改后续调用的结果。

假设“c”是输入GetASyncKeyState()的变量

您可以使用以下方法来检测是打印大写字母还是小写字母

string out = "";

bool isCapsLock() { // Check if CapsLock is toggled
    if ((GetKeyState(VK_CAPITAL) & 0x0001) != 0) // If the low-order bit is 1, the key is toggled
        return true;
    else
        return false;
}

bool isShift() {  // Check if shift is pressed
    if ((GetKeyState(VK_SHIFT) & 0x8000) != 0) // If the high-order bit is 1, the key is down; otherwise, it is up.
        return true;
    else
        return false;
}

if (c >= 65 && c <= 90) { // A-Z
    if (!(isShift() ^ isCapsLock())) { // Check if the letter should be lower case
        c += 32;  // in ascii table A=65, a=97. 97-65 = 32
}
out = c;
string out=”“;
bool isCapsLock(){//检查CapsLock是否已切换
if((GetKeyState(VK_大写)&0x0001)!=0)//如果低位为1,则切换键
返回true;
其他的
返回false;
}
bool isShift(){//检查是否按下了shift键
if((GetKeyState(VK_SHIFT)&0x8000)!=0)//如果高阶位为1,则键为向下;否则,键为向上。
返回true;
其他的
返回false;
}

如果(c>=65&&c,正如我几天前在这里提出的另一个问题中指出的那样,但出于不同的目的,我也可以使用:如果是,我不确定如何使用,而不是Win32API专家。