我得到了一个wxWidgets表单,上面有一个进度条,我使用我自己定制的wxWidget事件来更新线程的进度。 这工作正常,除了事实是窗体只显示进度更新当我移动鼠标。 我已经尝试添加刷新()和更新()后新的进度值设置,但没有运气。
我做错了什么,或者这是一个wxWidgets的小故障?
Windows 7的Visual Studio 2005 c + +
编辑:
这是我目前的线程callback:
EVENT_CALLBACK_PTR_CPP(onProgress, UploadProgPage) { updateInfo* temp = static_cast<updateInfo*>(ptr); if (temp) { wxOnUploadUpdateEvent event(wxEVT_UPLOAD_UPDATE, GetId(), temp, UPDATE_PROGRESS); event.SetEventObject(this); GetEventHandler()->AddPendingEvent(event); } }
和进度更新:
void UploadProgPage::onUpdate(wxOnUploadUpdateEvent &event) { if (event.type == UPDATE_PROGRESS) { m_pbProgress->SetValue(event.info->precent); Refresh(false); } }
我解决了。 它因为SetTopWindow(); 当我从我的应用程序中删除此行时,所有事件都会在适当的时候处理。