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
반응형