본문 바로가기

Study Memos/Windows Programming

ListBox 배경 색상 변경 (Section 68)

참고> blog.naver.com/tipsware/221147541743

 

1. ListBox의 배경색은 'Owner Draw' 로 변경이 안되서 WM 메시지를 사용해야 함.

 

2. WM_CTLCOLOR : 컨트롤에서 사용할 DC의 상태 값을 설정할 수 있게 해주는 메시지

 

3. 예전 16bit Windows 운영체제에서는 WM_CTLCOLOR 메시지를 썼지만 이후에는 WM_CTLCOLORBTN, WM_CTLCOLORLISTBOX 등 각 컨트롤별로 메시지가 세분화됨

 

4. 대화상자의 윈도우 프로시저에서 WM_CTLCOLORLISTBOX 메시지 처리를 추가해주면됨

  => 리턴 값으로 ListBox가 사용할 배경 Brush 객체의 핸들 값을 반환해주면 ListBox는이 Brush 객체로 배경을 그려줌

  => 글자색, 배경색 등을 변경하기 위해 lParam으로 넘어온 DC를 SetTextColor(), SetBkColor() 함수에 사용할 수 있음

 

반응형