向CEdit中追加文本(原来文本不变)已经让滚动条始终在底部
方法一:(效率不高)
CString strTemp;
GetDlgItem(IDC_EDIT_OUTPUT)->GetWindowText(strTemp);
strTemp += strAppendText;
GetDlgItem(IDC_EDIT_OUTPUT)->SetWindowText(strTemp);
GetDlgItem(IDC_EDIT_OUTPUT)->SendMessage(WM_VSCROLL,SB_BOTTOM,0); //滚动到顶部 SB_BOTTOM 滚动到底部
(滚动条每次刷新都会先回到顶部,然后再到底部,如果刷新比较快,容易闪动)
方法二:(效率高)
CEdit m_editOutPut;
int len = m_editOutPut.GetWindowTextLength();
m_editOutPut.SetSel(len,len); //将插入光标放在最后
m_editOutPut.ReplaceSel(strAppendText);
m_editOutPut.ScrollWindow(0,0); //滚动到插入点
(滚动条始终在底部,不闪动)
本文介绍两种高效地向CEdit控件追加文本的方法,并确保滚动条始终保持在窗口底部,避免视觉闪烁。第一种方法通过获取当前文本、追加新文本并重新设置,但会导致滚动条短暂移位。第二种方法直接定位插入点到文本末尾并追加,然后平滑滚动到插入点位置,实现流畅体验。

9497

被折叠的 条评论
为什么被折叠?



