본문 바로가기
Study/MFC

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

by 뿡뿡대마왕 2014. 11. 13.
반응형


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

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

심플하게 정리해 본다. 


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


반응형

댓글