2012-07-20 2 views
1

Win32 C++을 사용하여 편집 상자를 만들었습니다. 나는 그것을 서브 클래 싱하고 OnPaint menthod를 재정 의하여 배경색을 채 웁니다.배경색이 회색 인 편집 상자

이제 일부 텍스트를 입력해도 텍스트가 보이지 않지만 커서가 움직이는 것을 볼 수 있습니다.

배경색을 지정하지 않으면 편집 상자에 텍스트가 표시됩니다.

배경색이 텍스트를 가져 오지 않는 이유는 무엇입니까?

+0

을 추천할까요? – brano

+0

텍스트와 배경이 서로 다른 색으로 표시되지 않습니다. – anand

+0

텍스트를 그릴 때 대비 색 펜을 사용해야합니다. – Jeeva

답변

2

편집 컨트롤에 대해 WM_PAINT를 처리하지 않아도됩니다. 여기에서는 배경색을 채우려는 것뿐입니다. 그러나이 과정에서 원본 편집 컨트롤 절차에서 내용을 그리는 것을 허용하지 않습니다.이 경우 입력 한 텍스트입니다. 커서는 ShowCaret 함수를 사용하여 표시되기 때문에 표시됩니다.

그래서 편집 컨트롤의 배경색을 변경하려면 부모 창에서 WM_CTLCOLOREDIT 및 WM_CTLCOLORSTATIC을 처리하고 브러시를 반환하십시오. 텍스트가 배경색과 같은 색일 수 있으므로 http://msdn.microsoft.com/en-us/library/windows/desktop/bb761691%28v=vs.85%29.aspx

+0

감사합니다. 문제가 해결되었습니다. – anand