我遇到的问题是,程序中设置了一个定时器时长1000ms,也有一个OnKeyDown消息,但是当我一直按键响应OnKeyDown消息时,定时器消息貌似没反应啊,我想知道的是,这两种消息应该都是放到窗口的消息队列中吧,按理说应该是每隔一秒定时器响应一次的,但是,当我一直按键时只响应了OnKeyDown,求解啊!

解决方案 »

  1.   

    放点代码出来;
    你说的是不是在ONTIMER里也有发出ONKEYDOWN消息,但是没有接收到?
      

  2.   

    这是正常的啊,消息也是有优先级的,WM_TIMER消息的优先级是很低的,而键盘消息的优先级高于定时器,所以一直按键盘的话,定时器消息肯定会受到影响的。
      

  3.   

      额,先回答第一个,代码有点长所以没贴,定时器中没有OnkeyDown消息。
      2.我用的是单文档所以是在OnDraw里设置定时器的。
      3.额,ls的基本回答了,但是我还是想知道,可以让定时器发的消息不受影响或者说让定时器的消息不放到消息队列中去,用SendMessage吗?  谢谢
      

  4.   

    但是我还是想知道,可以让定时器发的消息不受影响或者说让定时器的消息不放到消息队列中去,用SendMessage吗? 谢谢可以用多媒体定时器
      

  5.   

    我觉得问题应该在这里:
    2.我用的是单文档所以是在OnDraw里设置定时器的。
    每次OnDraw都会重置定时器。
      

  6.   

    timer的优先级很低
    如果对这部分功能要求严格的话可以考虑用线程自己模拟