C++中GetAsyncKeyState 能不能判断按任意键呢 就是它的参数怎么写

2025-04-04 12:27:29
推荐回答(4个)
回答1:

//  重写父类的PreTranslateMessage这个虚函数
BOOL CXXX::PreTranslateMessage(MSG* pMsg)  
{

    //键盘按下
    if (pMsg->message==WM_KEYDOWN)
    {
        //处理函数
    }
    
    return CDialog::PreTranslateMessage(pMsg);
}

 SHORT GetAsyncKeyState(int vKey);
参数vKey是某个按键的虚拟码。


功能 :

    如果函数成功,则返回值指定此按键自上次上次调用GetAsyncKeyState后是否按下过,以及此按键当前是弹起的还是按下的。如果最高比特位被设置(就是被设为1),此按键就是按下的,如果最低位被设置,则此按键在上次调用GetAsyncKeyState之后(“又”)被按下过。但是你不应该依赖于之前的(按键)行为。


所以GetAsyncKeyState只能判断具体某一个键是否被按下。

回答2:

#include
#include
using namesapce std;
int main(){
    while(true){
        if(kbhit()){
            system("cls");
            puts("键盘按键被按下");
        }
    }
    return 0;
}

回答3:

for(int i=0x01;i<=0x60;i++) //遍历每一个键
{
if(GetAsyncKeyState(i) & 0x8000) //执行的代码
}

回答4:

不懂这个 啊