Study/MFC

다이얼로그 배경색 바꾸기, 컨트롤 배경색 변경

뿡뿡대마왕 2014. 11. 13. 09:54
반응형


다이얼로그 배경색과 다이얼로그에 배치된 컨트롤러 배경색 변경 하기

다이얼로그의 배경색 변경하기 

심플하게 정리해 본다. 


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);


반응형