将文本追加到CEdit控件后出现奇怪的字体效果

时间:2018-11-28 18:28:45

标签: visual-c++ textbox mfc append cedit

注意到界面更新缓慢之后,我遵循了CEdit SetWindowText rediculously slow上的建议,将文本追加到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();
}

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

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

enter image description here

1 个答案:

答案 0 :(得分: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();
}

好像我暂时禁用了重绘功能,问题就消失了!