vc++ mfc에서 CRichEdit 클래스에서 폰트색 변경 방법
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 |