반응형

이거 또, 정말 오랜만에 글을 하나 올려봅니다. ㅋ

한동인 미투데이에 빠져들면서~ 블로그를 좀 등한시 했는데, 요즘 미투데이가 시들시들해지면서~

다시 블로그로~~ ^^;;;; 아.하.하.하..;;


요즘 개인적으로 툴을 하나 만들어볼까~~~!? 하고 작업을 시작했습니다.

텍스트(?)를 화면에 뿌려주는 게 필요해서 뭘로 할까~ 고민하다가 RichEdit 컨트롤 로 정했습니다.
( 텍스트에 따라 글자 색깔도 조금 바꿔주는 등의 처리가 필요할 듯 싶어서...^^;;;; )

본격적으로 작업을 시작하기도 전에~ 테스트 단계에서 무진장(?) 애를 먹었습니다.

간단하게 RichEdit 컨트롤을 테스트하기 위해 약간의 입력을 했는데, 아래의 결과가 나오더군요;;;


< 그림. 01 > RichEdit 컨트롤 테스트


폰트를 '돋움체 - 크기 : 11' 로 맞춰두고 입력을 했는데~ 이 모양입니다;;;
( '돋움체' 는 고정폭으로 한글 1자와 숫자, 영어 2자의 폭이 일치해야하거든요... =_=;;; )

숫자와 한글은 입력이 잘된다 싶었는데, 이 놈의 영어 입력에서~ 살짝 태클이 들어오더군요;;;

보시는 것처럼 영어 입력시 폰트가 달라집니다. 이후에 입력되는 숫자들도 영향을 받구요...

이.것.때문에 한참 삽질을 했습니다...ㅠ.ㅠ...

검색으로 RichEdit 컨트롤에 관련된 내용을 뒤지다가 엄~~~~청 뒷북으로 알게된 사실....;;;

RichEdit 2.0 부터는 사용자가 입력하는 언어를 바꾸면 자동으로 글꼴을 바꿔주는 옵션이 있다. ( IMF_AUTOFONT )

이런게 있더군요... 하아 =3=3=3
( RichEdit 1.0 이후로는 쓴 적이 없다보니 이런 일이... oTL;;;; )

이 옵션은 IDE 폼 디자이너의 컨트롤 속성 창으로는 변경이 불가능하며~

SendMessage() 를 이용해야 합니다.


[ Visual C++ 에서의 코드 ]

CRichEditCtrl m_ctrlRichEdit;

...

m_ctrlRichEdit.SendMessage(EM_SETLANGOPTIONS, 0,
            (LPARAM)(m_ctrlRichEdit.SendMessage(EM_GETLANGOPTIONS, 0, 0) & ~IMF_AUTOFONT));


[ C++ Builder 에서의 코드 ]

TRichEdit *RichEdit1;

...

::SendMessage(RichEdit1->Handle, EM_SETLANGOPTIONS, 0,
      (LPARAM)(::SendMessage(RichEdit1->Handle, EM_GETLANGOPTIONS, 0, 0) & ~IMF_AUTOFONT));


RichEdit 2.0 나온지도 한참 됐는데... 이제서야 알게됐다는게 심히 부끄럽네요.. *^_^*;;;

슬~~ 슬~~ 저는 또 작업 진행하러 갑니다~~ : )


반응형
AND