wxIdleEvent 空闲事件处理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了wxIdleEvent 空闲事件处理相关的知识,希望对你有一定的参考价值。

说明

    当没有消息需要处理的情况下,可以通过定义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();

}


缺点:不是一个定时器,而且只是在消息循环体中没有任何消息的情况下,执行该事件


以上是关于wxIdleEvent 空闲事件处理的主要内容,如果未能解决你的问题,请参考以下文章

浏览器的事件处理机制

Hadoop的Server及其线程模型分析

WinForm中Application.Idle事件用法

iOS学习笔记--触摸事件

NIO就绪处理之OP_WRITE

NIO就绪处理之OP_WRITE