【发布时间】:2011-09-28 09:47:52
【问题描述】:
我正在使用SetTimer 在我的应用程序中创建一个间隔为 50 毫秒的计时器,该计时器将用于绘制一个对象并移动它。
现在我不希望对象在窗口失焦时移动,但我仍然需要绘制它。 让它每 50 毫秒绘制一次,似乎没有必要。在这个项目中,性能非常重要。
所以我需要一种方法来暂停计时器,但仍然绘制对象,但最好只在需要时。
【问题讨论】:
我正在使用SetTimer 在我的应用程序中创建一个间隔为 50 毫秒的计时器,该计时器将用于绘制一个对象并移动它。
现在我不希望对象在窗口失焦时移动,但我仍然需要绘制它。 让它每 50 毫秒绘制一次,似乎没有必要。在这个项目中,性能非常重要。
所以我需要一种方法来暂停计时器,但仍然绘制对象,但最好只在需要时。
【问题讨论】:
当你得到 WM_ACTIVATE 后,决定是调用 KillTimer 还是 SetTimer。
【讨论】:
WM_PAINT 中,然后从计时器调用WM_PAINT,但调用WM_PAINT 似乎通常会影响性能?
只是对您最初的问题的说明。
我不会依赖分辨率如此低的 Windows Timer。这是一条低优先级的消息,如果您的程序中有很多繁重的事情正在发生,那么计时器可能会以您期望的更高间隔被调用。
【讨论】: