PS:上述方法中有个值的我注意的地方,我的程序是这样的:在消息循环里,只要程序是激活状态,程序就会调用那个得到按键并把一些信息绘制到窗口的函数-----GetDeviceData 最后一个参数为 0 时,它会清空缓冲区域的内容,想了想,于是把消息循环改了改,改为当程序处于激活状态时,每1000/30 ms 才调用那个得到按键的函数,结果就好象正常了。意思就是说:缓冲区记录了 1000/30 MS 的时间间隔里的按键信息。而原来那样做,缓冲区的内容根本得不到积累-----不知道我这样理解对不对?(呵呵,才刚把问题贴出来,就自己给自己结帖了~~)