cplusplus

wxWidget Message

上一篇 / 下一篇  2012-07-08 03:14:22 / 个人分类:转载

处理函数介绍

看源代码include/wx/event.h中如下代码:
class WXDLLIMPEXP_BASE wxEvtHandler : public wxObject
{
..........................................

// 立即处理一个事件
virtual bool ProcessEvent(wxEvent& event);

// 添加一个事件到待处理队列
void AddPendingEvent(wxEvent& event);

....................................
}

// 添加一个事件到对应句柄的待处理队列,在下次事件循环迭代后处理该事件
inline void wxPostEvent(wxEvtHandler *dest, wxEvent& event)
{
wxCHECK_RET( dest, wxT("need an object to post event to in wxPostEvent") );

dest->AddPendingEvent(event);
}

以上代码说明了wxwidgets的两个重要事件处理函数ProcessEvent和wxPostEvent,我们可以这样理解:
ProcessEvent是同步处理一个事件,只有该事件被处理完才结束;
wxPostEvent是异步处理一个事件,该函数仅仅将事件加入到对应事件句柄的事件待处理队列,不等事件被处理就直接返回。
所以在不同的使用环境中我们要妥善使用这两个函数,尤其在多线程和UI编程(如容易引起界面阻塞的操作)环境下!
http://hi.baidu.com/chinacharis/item/ea5b82081ea46f853d42e260

TAG: wxWidget

 

评分:0

我来说两句

Open Toolbar