注意到界面更新缓慢之后,我遵循了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();
}
现在,当我运行它时,我注意到一个奇怪的字体模糊,因为它在图像的“日志”文本框的前两行中可见。
原因是什么,我该如何解决?
答案 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();
}
好像我暂时禁用了重绘功能,问题就消失了!