wxWidgets не будет обновляться до тех пор, пока мышь не переместится
Вопрос
Я получил форму wxWidgets с индикатором выполнения на ней, и я обновляю прогресс из потока, используя свое собственное пользовательское событие wxWidget.Это работает нормально, за исключением того факта, что форма показывает обновление прогресса только при наведении курсора мыши.Я пытался добавить Refresh() и Update() после установки нового значения прогресса, но безуспешно.
Я делаю что-то неправильно или это сбой с wxWidgets?
Windows 7 Visual Studio 2005 c++
Редактировать:
Это мой текущий обратный вызов потока:
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();Когда я удаляю эту строку из своего приложения, все события обрабатываются своевременно.
Не связан с StackOverflow