0

在注意到界面更新的缓慢后,我按照CEdit SetWindowText上的建议将文本附加到 CEdit 控件的速度非常慢。

然后我换了

void CMyPropertyPage::Log(const CString& sLog)
{
    CString str;
    m_cLogEdit.GetWindowText(str);

    if (!str.IsEmpty())
        str += _T("\r\n");

    str += sLog;

    m_cLogEdit.SetWindowText(str);
    m_cLogEdit.LineScroll(m_cLogEdit.GetLineCount());
}

经过

void CMyPropertyPage::Log(const CString& sLog)
{
    m_cLogEdit.SetSel(-1,-1);
    m_cLogEdit.ReplaceSel(sLog + L"\r\n");

    //m_cLogEdit.LineScroll(m_cLogEdit.GetLineCount());

    UpdateData(FALSE);
    UpdateWindow();
}

现在,当我运行它时,我注意到一个奇怪的字体模糊,因为它在图像中日志文本框的前两行中可见。

是什么原因,我该如何解决?

在此处输入图像描述

4

1 回答 1

1

我解决了:)

void CMyPropertyPage::Log(const CString& sLog)
{
    m_cLogEdit.SetRedraw(FALSE);

    m_cLogEdit.SetSel(-1,-1);
    m_cLogEdit.ReplaceSel(sLog + L"\r\n");

    m_cLogEdit.SetRedraw(TRUE);

    m_cLogEdit.LineScroll(m_cLogEdit.GetLineCount());

    UpdateData(FALSE);
    m_cLogEdit.UpdateWindow();
}

似乎如果我暂时禁用重绘,问题就消失了!

于 2018-11-29T12:47:18.603 回答