2009-06-23 14 views
2

Ich habe ein wxWidgets-Formular mit einem Fortschrittsbalken darauf und ich aktualisiere den Fortschritt von einem Thread mit meinem eigenen benutzerdefinierten wxWidget-Ereignis. Das funktioniert gut, außer dass das Formular nur die Fortschrittsaktualisierung zeigt, wenn ich die Maus bewege. Ich habe versucht, Refresh() und Update() hinzuzufügen, nachdem der neue Fortschrittswert eingestellt ist, aber ohne Glück.wxWidgets werden nicht aktualisiert, bis sich die Maus bewegt

Mache ich etwas falsch oder ist das ein Fehler mit wxWidgets?

Windows 7 Visual Studio 2005 C++

Edit:

Dies ist meine aktuellen Thread Rückruf:

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

Und der Fortschritt Update:

void UploadProgPage::onUpdate(wxOnUploadUpdateEvent &event) 
{ 
    if (event.type == UPDATE_PROGRESS) 
    { 

     m_pbProgress->SetValue(event.info->precent); 
     Refresh(false); 
    } 
} 

Antwort

1

ich es hat geklappt . Es ist wegen SetTopWindow(); Wenn ich diese Zeile aus meiner App entferne, werden alle Ereignisse rechtzeitig verarbeitet.

Verwandte Themen