说明
当没有消息需要处理的情况下,可以通过定义OnIdle事件处理消息函数,来达到充分利用CPU的目的。当用户鼠标按下,执行大量的渲染,可能会出现屏幕的卡顿,如果让OnIdle函数处理,就可以避免出现这个问题
例子
#include "wx/event.h"
void OnIdle(wxIdleEvent& event);
EVT_IDLE(CFlightInstrumentPanel::OnIdle)
void CFlightInstrumentPanel::OnIdle( wxIdleEvent& event )
{
static int x = 0;
if (x<1000)
{
wxClientDC dc(this);
wxPen pen(*wxRED,1);
dc.SetPen(pen);
dc.DrawRectangle(x, 0, 200, 300);
dc.SetPen(wxNullPen);
x=x+100;
}
event.Skip();
}
缺点:不是一个定时器,而且只是在消息循环体中没有任何消息的情况下,执行该事件
时间: 2024-10-27 03:09:30