none
DirectInput立即模式接收键盘消息并打印时,按一键却打印出满屏的信息,求教如何解决? RRS feed

  • 问题

  • 关键代码片断如下,代码中的各个变量已经初始化无误:

    LPDIRECTINPUTDEVICE8 g_pKeyboard = NULL; BYTE diks[256]; .......... //开始准备循环接收数据 while(g_pKeyboard->GetDeviceState(sizeof(diks),&diks) == DI_OK) { for(int i=0;i<256;i++) { if((diks[i] & 0x80) >0 ) { std::cout<<"The Key of NO."<<i<<" is pressed."<<std::endl;

    break; } } }

    嗯,我的预计是如果按一次按键,控制台打印出一条消息,但运行的结果是一次按键,控制台一下子打印出一大堆相同的按键信息,我大略看了下基本上都在100条以上,请问这是什么原因呢?有没有给个答案啊?

    2015年1月12日 2:44