CListCtrl 没有像 StaticText 那样立即显示文本

CListCtrl did not show text immediately like StaticText

我有这样的代码可以将安装日志写入静态文本和列表控件,并且我有一个按钮来启动由函数 OnClickInstallBtn() 处理的安装程序,但每次我调用 WriteLogtoScreen(),只有静态文本发生变化,列表中不会显示任何内容,直到 OnClickInstallBtn() 完成并且该列表中的所有内容都显示在一个列表中。

如何让它像静态文本一样立即显示?

WriteLogtoScreen(LPCTSTR sLog)
{
    int         iItems;
    iItems = m_ListLog.GetItemCount();

    m_ListLog.InsertItem(iItems, sLog);
    m_ListLog.Update(iItems);
    m_ListLog.SetItemText(iItems, 0, sLog);
    m_ListLog.Update(iItems);
    UpdateData(FALSE);

    SetDlgItemText(IDC_STATIC, sLog);
}

如果你想像这样明确地强制重绘你的列表,你应该调用 RedrawWindow():

    void WriteLogtoScreen(LPCTSTR sLog)  
    {
            int      iItems;
            iItems = m_ListLog.GetItemCount();

            m_ListLog.InsertItem(iItems, sLog);
            m_ListLog.Update(iItems);
            m_ListLog.SetItemText(iItems, 0, sLog);
            m_ListLog.Update(iItems);
            UpdateData(FALSE);

            //instant redraw  
            m_ListLog.RedrawWindow();

            SetDlgItemText(IDC_STATIC, sLog);  
    }