首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

MFC 編輯控件自動滾動顯示最新行的實現

     編輯:程式設計疑難解答

需求

向編輯框追加文本後,自動滾動到最後一行保持可見。

核心代碼

// 追加文本
m_edit.SetSel(-1, -1); // 移動插入點到末尾
m_edit.ReplaceSel(newText + _T("\r\n"));

// 自動滾動到最後一行
m_edit.LineScroll(m_edit.GetLineCount());

關鍵函數說明

  • SetSel(-1, -1):將光標移至文本末尾
  • ReplaceSel:在光標處插入文本
  • GetLineCount():獲取總行數
  • LineScroll(n):垂直滾動 n 行(正數向下)

完善版本:追加並滾動封裝

void AppendText(CEdit& edit, LPCTSTR text) {
    int len = edit.GetWindowTextLength();
    edit.SetSel(len, len);
    edit.ReplaceSel(text);
    edit.ReplaceSel(_T("\r\n"));
    edit.LineScroll(edit.GetLineCount()); // 強制滾動到底
}

注意事項

  • 編輯框需設置 ES_MULTILINE | ES_AUTOVSCROLL | WS_VSCROLL 樣式
  • 大量文本追加時建議 SetRedraw(FALSE) 結束後 TRUE 防止閃爍
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved