概述
处理函数介绍
看源代码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编程(如容易引起界面阻塞的操作)环境下!
转载于:https://my.oschina.net/u/2332347/blog/637842
最后
以上就是怕孤单裙子为你收集整理的wxWidgets事件(Event)处理(一)的全部内容,希望文章能够帮你解决wxWidgets事件(Event)处理(一)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复