wxWidgets не будет обновляться до перемещения мыши - PullRequest
2 голосов
/ 23 июня 2009

Я получил форму wxWidgets с индикатором выполнения, и я обновляю прогресс из потока, используя свое собственное пользовательское событие wxWidget. Это работает хорошо, за исключением того факта, что форма показывает только прогресс обновления, когда я перемещаю мышь. Я попытался добавить Refresh () и Update () после установки нового значения прогресса, но безуспешно.

Я что-то не так делаю или это глюк с wxWidgets?

Windows 7 visual studio 2005 c ++

Edit:

Это мой текущий обратный вызов потока:

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);
    }
}

1 Ответ

1 голос
/ 01 июля 2009

Я разобрался. Это из-за SetTopWindow (); Когда я удаляю эту строку из моего приложения, все события обрабатываются своевременно.

...