반응형
출처: http://crowback.tistory.com/36
Bool 처럼 어떤 값을 받으면 색을 바꾸는 코드를 만들고 싶었다.
그래서 찾다보니 WM_CTCOLOR라는 메시지가 있었다.
이 메시지를 처리하기 위한 핸들러를 추가하면 다음과 같은 코드가 생성된다.
그러면 switch 이하 구문을 이용하여 특정 컨트롤의 배경색을 변경할 수 있다..
HBRUSH CSpeedometerDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor); switch (nCtlColor) { case CTLCOLOR_STATIC: // 컨트롤의 구분타입이 Static인 경우 if (pWnd->GetDlgCtrlID() == IDC_Verify) { // 컨트롤 윈도우에 있는 컨트롤 중 // ID가 IDC_Verify인 경우 처리하는 구문 } break; } return hbr; }
주의할 점은 Edit Control의 색 변경 시 Read Only 속성이라면
CTCOLOR_EDIT으로 찾는 게 아니라 CTCOLOR_STATIC으로 찾아야 한다.
반응형