C 如何知道用户按下的键?
我有一个C语言的控制台应用程序 我试图检测用户按下了哪个键:C 如何知道用户按下的键?,c,winapi,C,Winapi,我有一个C语言的控制台应用程序 我试图检测用户按下了哪个键: if (...) printf ("Shift + Right Arrow"); if (...) printf ("Right Arrow"); if (...) printf ("中"); // (Big5(CP950): 0xA4 0xA4) if (...) printf ("文"); // (Big5(CP950): 0xA4 0xE5) .... 如何检测用户按下了哪些键?是否要检查虚拟键
if (...)
printf ("Shift + Right Arrow");
if (...)
printf ("Right Arrow");
if (...)
printf ("中"); // (Big5(CP950): 0xA4 0xA4)
if (...)
printf ("文"); // (Big5(CP950): 0xA4 0xE5)
....
如何检测用户按下了哪些键?是否要检查虚拟键 #包括 #包括 BOOL isPressShift(){ 返回(短)0x8000和GetKeyState(VK_移位); } BOOL isPressRightArrow(){ 返回(短)0x8000和GetKeyState(右); } 内部主(空){ //…做点什么 if(isPressShift()&&isPressRightArrow()) printf(“Shift+右箭头\n”); 如果(isPressRightArrow()) printf(“右箭头”); 返回0; }
我应该使用哪个函数?您是否有消息循环或正在编写控制台应用程序?是MFC还是正在使用win32 api或控制台?@Digital_Reality是C:-中的控制台应用程序)
#include <stdio.h>
#include <Windows.h>
#include <Winuser.h>
BOOL isPressShift(){
return (SHORT)0x8000 & GetKeyState( VK_SHIFT );
}
BOOL isPressRightArrow(){
return (SHORT)0x8000 & GetKeyState( VK_RIGHT );
}
int main(void){
// ... do something
if(isPressShift() && isPressRightArrow())
printf("Shift + Right Arrow\n");
if(isPressRightArrow())
printf("Right Arrow\n");
return 0;
}