다이얼로그 배경색 바꾸기, 컨트롤 배경색 변경
다이얼로그 배경색과 다이얼로그에 배치된 컨트롤러 배경색 변경 하기
다이얼로그의 배경색 변경하기
심플하게 정리해 본다.
1. 멤버변수로 CBrush를 선언
<A.h> 파일에 멤버 변수로 하나잡고
...
CBrush m_brush;
..
2. <A.cpp>에서 SolidBrush 생성
난 OnInitDialog()에서 해줬다.
m_brush.CreateSolidBrush(RGB(255,255,255)); ///< 난 배경색을 하얀색으로
ㅇㅇㅇ
3. OnCtlColor에서 색상 지정
-> 여기서 잠깐 OnCtlColor 처리 함수 등록하는 방법은 알죠??
다이얼로그 클릭하고 속성에서 빨간색 부분쪽!!!
자 OnCtlColor 함수를 등록했다고 가정하고~!!
1. nCtlColor값이 다이얼로그 인경우 만든 브러쉬 색상으로 리턴
2. 다이얼로그 안에 Static Ctrl이 있는경우 배경색만 변경하면 static 컨트롤의 배경색이 회색이라 일치가 안되니
같이 색상을 변경한다.
HBRUSH CDlgLogin::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if(nCtlColor == CTLCOLOR_DLG) ///< 다이얼로그 배경색 지정
hbr = (HBRUSH)m_brush;
else if( nCtlColor == CTLCOLOR_STATIC) ///< static 컨트롤러 배경색 변경
{
pDC->SetBkMode(TRANSPARENT);
hbr = (HBRUSH)m_brush;
}
return hbr;
}
자 이제 마지막으로
소멸자에서 생성한 브러쉬를 삭제 해주면된다.
DeleteObject(m_brush);