관리 메뉴

History

[MFC] WM_CTLCOLOR에서 Static, Edit 배경 설정 본문

MFC/개념 정리

[MFC] WM_CTLCOLOR에서 Static, Edit 배경 설정

luckybee 2023. 2. 1. 00:58
728x90
반응형

static 컨트롤을 기본적으로 실행해 놓으면 뒤에 배경과 색상이 검은색으로 출력된다. 이러한 것을 바꾸기 위해 WM_CTLCOLOR  메시지 함수를 사용해서 static 컨트롤을 제어할 것이다. 

 

모든 static컨트롤을 제어하고 싶으면 CTLCOLOR_STATIC 상수를 이용하면 사용한 모든 static을 제어할 수 있다. 

 

마찬가지로 edit컨트롤도 CTLCOLOR_EDIT 상수를 이용하면 사용자가 사용한 모든 edit  컨트롤을 제어할 수 있다.

 

참고 코드는 아래와 같다.

HBRUSH CMFCApplication3Dlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
	HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);
	if (nCtlColor == CTLCOLOR_STATIC) {  // Static 컨트롤의 색상
		pDC->SetTextColor(RGB(228, 228, 228));  // static 문자열 색상
		pDC->SetBkMode(TRANSPARENT);                  //배경 투명화
		return (HBRUSH)::GetStockObject(NULL_BRUSH);  // static 배경색 반환
	}
	else if (nCtlColor == CTLCOLOR_EDIT) {  // Edit 컨트롤의 색상
		pDC->SetTextColor(RGB(255, 255, 255));  // Edit 문자열 색상
		pDC->SetBkColor(RGB(60, 63, 78));   // Edit 배경 색상
		return mh_edit_bk_brush;  // Edit  배경색 반환
	}
	return hbr;
}
728x90
반응형
Comments