반응형

Visual Studio의 Visual C++ Tool을 사용해서...

MFC AppWizard[exe]를 사용했습니다.

SDI로 선택했고 Base Class를 "CRichEditView"로 선택했습니다.


워드패드와 같이 만들어 져서 잘 동작합니다.


제가 원하는 것은..

1) tab키가 눌려지면 글자색이나 크기등을 설정할 수 있도록 하고 싶습니다.

    지금까지 알아본 바로는...

    CRichEditView에서는 CHARFORMAT을 사용하는데..

    :::>CHARFORMAT cf <--이것을 View.h파일의 전역변수로 설정하고

    :::>CRichEditCtrl m_rich<--이것을 View.h파일의 전역변수로 설정하고

    :::>View.cpp파일에서는 다음과 같이 사용합니다.

          if (nChar == VK_TAB) {

               cf.crTextColor = RGB(0, 0, 255);

               m_rich.SetSelectionCharFormat(cf);

          }

헌데 이렇게 했더니 TAB키만 눌렀다하면 Debug Assertion Failed에러라는 창이 나오더군요..ㅠㅠ

(자세히 :

file - winctrl4.cpp

line - 160

For information on how your program can cause an assertion failure, see the Visual C++ documentation on asserts)

제가 알아본 저 방법 이 맞는지요???




리치에디트뷰를 사용하셨다면,

이미 리치에디트 컨트롤이 하나 만들어져 있는 상태입니다.

m_rich라는 CRichEditCtrl형 멤버 변수는 없애세요.

윈도우로써 생성하지도 않은 컨트롤에다가 속성을 설정하려니 오류가 발생하는 것입니다.

대신,

GetRichEditCtrl().SetSelectionCharFormat(cf);

이렇게 호출하세요.

리치에디트뷰가 갖고 있는 리치에디트 컨트롤을 GetRichEditCtrl()로 얻어낸 후 멤버 함수를 호출하는 것입니다.

그리고 cf를 구성할 때, dwMask에다가 CFM_COLOR을 설정하고 색상 설정을 하세요.

반응형

'WindowsPrograming' 카테고리의 다른 글

RichEditView에서 File Filter설정방법?  (0) 2007.03.11
MFC 팁...!  (0) 2007.03.11
MFC 요점 강의  (0) 2007.03.11
Posted by Real_G