본문 바로가기
MFC

View Background Color(배경색) 변경하기

by leo21c 2018. 6. 22.

Background color of CView window

구글 검색을 해보니 OnEraseBkgnd()함수를 사용하면 된다고 한다.

헤더에 함수를 선언하다.

 virtual BOOL OnEraseBkgnd(CDC* pDC);


소스의 메시지맵에 추가를 하고 함수를 아래와 같이 처리한다.

ON_WM_ERASEBKGND() 


배경색을 Button Face로 지정을 했다.

BOOL CTestView::OnEraseBkgnd(CDC* pDC)

{

// Get client area

CRect rc;

GetClientRect(&rc);


// Create grey brush and insert it into DC

DWORD btnColor = GetSysColor(COLOR_BTNFACE);

CBrush brush(RGB(GetRValue(btnColor), GetGValue(btnColor), GetBValue(btnColor)));

CBrush* pOldBrush = pDC->SelectObject(&brush);


// Fill window with brush

pDC->PatBlt(rc.left, rc.top, rc.Width(), rc.Height(), PATCOPY);


// Restore DC

pDC->SelectObject(pOldBrush);


return TRUE;

}


GetSysColor function 사용법은 MSDN을 참고한다.
https://msdn.microsoft.com/ko-kr/library/windows/desktop/ms724371(v=vs.85).aspx

예제는 아래 링크 참고

https://msdn.microsoft.com/ko-kr/library/windows/desktop/ms724940(v=vs.85).aspx