본문 바로가기
컴퓨터/MFC_API

CRichEditCtrl 에서 줄바꿈 없애기

by adnoctum 2014. 4. 11.




   CRichEditCtrl 의 instance 에서 word-wrap (줄바꿈)을 없애려면 SetTargetDevice 함수를 사용해야 한다. 


CRichEditCtrl::SetTargetDevice(NULL, 0); 


과 같이 하면 줄바꿈이 없어진다. SetWordWrapMode 나 GetWordWrapMode 함수가 있어서 매번 사용할 때마다 혼동하는데 이 함수가 아니라 위의 함수를 사용해야 한다. MSDN의 설명에 따르면 두 번째 인자가 0 인 경우 line-break 가 없어진다고 나와 있다. 하지만 첫 번째 인자를 NULL 로 하는 것이 어떤 의미인지는 설명이 안 나와 있다. 아마도 현재 설정되어 있는 것을 변경시키지 않는다는 의미일 듯 한데 정확하진 않고 어쨌든 저렇게 호출하면 줄바꿈을 없앨 수 있다. 





   가끔씩 이 코드를 손보기 때문에 쓸 때마다 SetWordWrapMode 를 해놓고 왜 안되지, 해서 아예 이 곳에 기록해 둔다. 더구나 난 default 로 줄바꿈을 없애기 때문에 OnInitialUpdate 함수와 같은 곳에 한 번 적어 두곤 해서 SetTargetDevice 라는 것을 자꾸 잊어버린다. MSDN 의 설명이 상당히 부실하다, 의외로 이렇게 부실한 항목이 MSDN 에 꽤 있다. CListCtrl 의 report 형식에서 각 cell 마다 색을 달리 해 주는 것도 여전히 설명히 부실해서 많은 것을 추정해서 해야 하고...