리치에디트 컨트롤 사용하기
1) AfxInitRichEdit();
App
클래스의 InitInstance 함수에서 AfxInitRichEdit 함수를 호출하여 Common Control Library 초기화시킵니다.

2)
워드랩 하기
// WrapNone (
워드랩 않하기)
SetTargetDevice(NULL, 1);

// WrapToWindow (
워드랩 하기)
SetTargetDevice(NULL, 0);

3)
원하는 구문만 색상및 폰트변경하기

CRichEditCtrl m_reChat;
다음 함수는 m_reChat라는 이름의 리치 에디트 컨트롤에 strTextIn으로 지정한 메시지를 추가합니다. crNewColor 지정한 색상과 sSize 지정한 크기와 lpszFontName으로 지정한 글꼴로 만들어 추가합니다.


void Cxxx::AddText(CString &strTextIn, COLORREF &crNewColor, int sSize, LPCSTR lpszFontName)
{
  //
리치에디트 컨트롤의 끝에 문자열 추가하기
  int iTotalTextLength = m_reChat.GetWindowTextLength();
  m_reChat.SetSel(iTotalTextLength, iTotalTextLength);
  m_reChat.ReplaceSel((LPCTSTR)strTextIn);
  int iStartPos = iTotalTextLength;

  //
인자로 넘어온 색상값과 폰트크기로, CHARFORMAT 설정
  CHARFORMAT cf;
  cf.cbSize    = sizeof(CHARFORMAT);
  cf.dwMask    = CFM_COLOR | CFM_UNDERLINE | CFM_BOLD | CFM_FACE | CFM_SIZE;
  cf.dwEffects  = (unsigned long)~( CFE_AUTOCOLOR | CFE_UNDERLINE | CFE_BOLD);
  cf.crTextColor  = crNewColor;//RGB(0, 0, 0);
  cf.yHeight = sSize * 20;
  strcpy(cf.szFaceName, lpszFontName);  

  //
새로추가된 부분에 색상및 폰트 속성 적용
  int iEndPos = m_reChat.GetWindowTextLength();
  m_reChat.SetSel(iStartPos, iEndPos);
  m_reChat.SetSelectionCharFormat(cf);
  m_reChat.HideSelection(TRUE, FALSE);
  m_reChat.LineScroll(1);
}

Posted by Real_G

댓글을 달아 주세요

  1. pacifist89 2013.11.14 17:17  수정/삭제 댓글쓰기 댓글주소

    오빠 안녕하세요.
    저 용림이에요~ ㅋㅋㅋ
    이 컨트롤 검색하다가 낯선 블로그 이름이 떠서 들어와봤더니 오빠꺼라니!
    잘 지내시죠?

    히히 전 대전에서 일 하고 있어요

    오빠 근데 이 리치에디트 컨트롤에서 이미지 파일도 불러올수 있어요?

    • 오! 용림이~ 오랜만이야. ㅎ

      리치에디터 찾아보니까 이미지는 백그라운드로 까는거밖에 없는거 같더라. 윈도우 프로그램 해본지가 하도 오래되서 기억이 안나. ㅋ