wxWidgets不会更新,直到鼠标移动

时间:2009-06-23 11:29:15

标签: c++ windows 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);
    }
}

1 个答案:

答案 0 :(得分:1)

我解决了这个问题。因为SetTopWindow();当我从我的应用程序中删除此行时,所有事件都会在适当的时候处理。