1. 程式人生 > >Richedit控制元件字元格式及字型顏色的實現

Richedit控制元件字元格式及字型顏色的實現

1、Richedit中控制字元的格式:

       通過呼叫CFont類來實現,在.h檔案中新增CFont  m_font;再在.cpp檔案中新增如下程式碼:

    m_font.CreateFont(12,0,0,0,FW_DONTCARE,FALSE,FALSE,0, 1,
    OUT_DEFAULT_PRECIS, 
    CLIP_DEFAULT_PRECIS,
    DEFAULT_QUALITY, 
    DEFAULT_PITCH|FF_SWISS,
    _T("黑體"));
  GetDlgItem(IDC_RICHEDIT21)->SetFont(&m_font);

2、控制其中的某一行為藍色:

    CRichEditCtrl* m_cRichEdit = (CRichEditCtrl*)GetDlgItem(IDC_RICHEDIT21);//獲取該控制元件的指標
    m_cRichEdit->SetWindowText(tmp4.MakeUpper());//設定要顯示的內容

    int lineStart, lineEnd;
    CHARFORMAT cFmt;
    cFmt.cbSize = sizeof(CHARFORMAT);
    cFmt.crTextColor = RGB(0,0,255);
    cFmt.dwEffects = 0;
    cFmt.dwMask = CFM_COLOR;

    lineStart = m_cRichEdit->LineIndex(0);//取第一行的第一個字元的索引
    lineEnd = m_cRichEdit->LineIndex(1)-1;//取第一行的最後一個字元的索引——用第二行的第一個索引減1來實現
    m_cRichEdit->SetSel(lineStart,lineEnd);//選取第一行字元
    m_cRichEdit->SetSelectionCharFormat(cFmt);//設定顏色

3、對於你需要一按鍵下建立兩個對話方塊的情況,為了避免在再生成對話方塊中有richedit中出現我們不需要的藍色背景(只出現在有文字的地方),我們可以改變這兩個對話方塊的生成順序即可。(2014.12.6,除錯richedit時文字出現不想要的藍色背景的解決方法)