Windows默认的情况是这样的,当你按下一个键时不松开,会先发送一个WM_KEYDOWN消息,然后等待“一小会”,再继续[b]快速连发WM_KEYDOWN消息,直到松开按键,发送WM_KEYUP消息,问题就出在这“一小会”,怎么才能不等待这一小会,当按键按下时候,持续不断的发出WM_KEYDOWN的消息?    形象点说,就如同俄罗斯方块控制按键,当你按下向左键时,方块先向左移动一下,然后等一会才能快速向左移动,如果按键按下的瞬间就可以让方块快速向左移动该怎么办    能帮忙写下消息处理函数最好,或者给个思路,比如WM_LBUTTONDOWN后设定一个定时器?或者WINDOWS可以修改那个“一小会”的时间值为0?    还有一个问题是如果两个键同时按下的时候,响应后按的键,松开其中一个后,立马响应未松开的键,要立刻不暂停的切换,怎么实现,也给个思路[/b]

解决方案 »

  1.   

    Windows默认的情况是这样的,当你按下一个键时不松开,会先发送一个WM_KEYDOWN消息,然后等待“一小会”,再继续[b]快速连发WM_KEYDOWN消息,直到松开按键,发送WM_KEYUP消息,问题就出在这“一小会”,怎么才能不等待这一小会,当按键按下时候,持续不断的发出WM_KEYDOWN的消息?
    ====================
    你的意思是在两次间隙的时间要小一点,但是现在系统默认间隔时间已经应该能满足要求了。
      

  2.   

    你可以像游戏机里面一样,只要按下,就快速自动连续跑下去,不用管后面有没有按那个键住.
    或者在自动连续往下掉的时候如果想又慢下来,就在快速掉的过程中,用GetKeyState函数去看这个键是否被释放,如果被释放,就停止自动连续往下掉,变为慢慢掉.如果还没有释放,就继续快速掉,直到掉到底.
      

  3.   

    自己启动一个定时器 GetKeyState GetAsyncKeyState 检测
     
      

  4.   

    不是我想要的答案,不过还是谢谢了,再顶下,要沉了
    To wltg2001:
    你的意思是在两次间隙的时间要小一点,但是现在系统默认间隔时间已经应该能满足要求了。
    ========================================================================
    系统的间隔时间肯定够了,但第一次要等待的时间太长