首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> VC >> 關於VC++

VC 程式化向 RichEditView 寫入文字

     編輯:關於VC++

三種常見寫入情境

  1. 尾端附加:取得文字長度,設定選取範圍至末尾,呼叫 ReplaceSel。
  2. 游標處插入/取代:使用 CHARRANGE 取得目前選取範圍,若無選取則在游標處插入,否則取代選取文字。
  3. 全選文字:SetSel(0, -1)。

程式碼範例

// 1. 尾端附加
void CRichEditUseDoc::OnTextWriteafter() {
    CRichEditView* pView = GetView();
    CRichEditCtrl& edit = pView->GetRichEditCtrl();
    CString str = _T("ABCDEFG\r\n");
    int len = edit.GetWindowTextLength();
    edit.SetSel(len, len);
    edit.ReplaceSel(str);
}

// 2. 游標處插入
void CRichEditUseDoc::OnTextWriteCur() {
    CRichEditView* pView = GetView();
    CRichEditCtrl& edit = pView->GetRichEditCtrl();
    CHARRANGE cr; edit.GetSel(cr);
    CString str = _T("12345");
    if (cr.cpMin != cr.cpMax) edit.SetSel(cr.cpMin, cr.cpMax);
    else edit.SetSel(cr.cpMax, cr.cpMax);
    edit.ReplaceSel(str);
}

// 3. 全選
void CRichEditUseDoc::OnTextSelectall() {
    GetView()->GetRichEditCtrl().SetSel(0, -1);
}

關鍵點提醒

  • ReplaceSel 會取代目前選取範圍,若無選取則插入。
  • 換行需使用 \r\n(Rich Edit 需求)。
  • 若需設定字型、顏色等格式,需配合 CHARFORMAT2 與 SetSelectionCharFormat。
  • 文件類別 (CDocument) 操作視圖屬違反文件/視圖分離原則,實務上建議由視圖類別提供公用函式供文件呼叫,或透過訊息傳遞。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved