wxWidgets не будет обновляться до тех пор, пока мышь не переместится

StackOverflow https://stackoverflow.com/questions/1031996

  •  06-07-2019
  •  | 
  •  

Вопрос

Я получил форму 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();Когда я удаляю эту строку из своего приложения, все события обрабатываются своевременно.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top