소연의_개발일지
article thumbnail

 

다이얼로그 배경색 변경

 

ctrl + shift + X  로 클래스 마법사에 들어간다.

해당 클래스 → 메세지 → WM_ERASEBKGND 를 더블클릭하여 추가한다.

 

아래 코드를 추가한다.

// 다이얼로그 색 변경
BOOL CMultiClientChart::OnEraseBkgnd(CDC* pDC)
{
    CRect rect;
    GetClientRect(rect);

    pDC->FillSolidRect(rect, RGB(0, 0, 0));	// 변경하고 싶은 색상 RGB색
    return TRUE;
	
	return CDialogEx::OnEraseBkgnd(pDC);
}

 

 

이렇게 하면 그룹박스 뒤에 선이 생긴다.

 

if (pWnd->GetDlgCtrlID() == IDC_STATIC_SENSOR_ID_SETTING	|| pWnd->GetDlgCtrlID() == IDC_STATIC_CLIENT_HIDDEN_SETTINIG
		|| pWnd->GetDlgCtrlID() == IDC_GROUP_MOTION_POS_CAL		|| pWnd->GetDlgCtrlID() == IDC_GROUP_AUTOCAL
		|| pWnd->GetDlgCtrlID() == IDC_STATIC_MANUAL_OFFSET1	|| pWnd->GetDlgCtrlID() == IDC_STATIC_MANUAL_OFFSET2
		|| pWnd->GetDlgCtrlID() == IDC_GROUP_LOAD_LOCAL_DATA	|| pWnd->GetDlgCtrlID() == IDC_STATIC_SUMMARY_DATA_EDGE
		|| pWnd->GetDlgCtrlID() == IDC_GROUP_AUTO_EDGE_SEARCH	|| pWnd->GetDlgCtrlID() == IDC_STATIC_DATA_SIMUL
		|| pWnd->GetDlgCtrlID() == IDC_STATIC_DEV_MODE			|| pWnd->GetDlgCtrlID() == IDC_STATIC_CAL
		|| pWnd->GetDlgCtrlID() == IDC_STATIC_MEMO
		)
	{
		pDC->SetBkColor(COLOR_SETTING);
		//pDC->SetBkMode(TRANSPARENT);   //그룹 박스는 이거 해주면 안됨
		pDC->SetBkMode(OPAQUE);
		pDC->SetTextColor(COLOR_BLACK);
		return(HBRUSH)GetStockObject(NULL_BRUSH);
	}
	else if (nCtlColor == CTLCOLOR_STATIC) {
		pDC->SetBkColor(COLOR_SETTING);
		pDC->SetBkMode(TRANSPARENT);
		pDC->SetTextColor(COLOR_BLACK);
		return(HBRUSH)GetStockObject(NULL_BRUSH);
	}

해당 그룹박스 아이디를 우선순위로 if로 조건을 주고 배경을 투명하게 주고

나머지 static들은 else if로 넣어서 배경색을 넣어준다.

 

끝~~~

profile

소연의_개발일지

@ssoyxon

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!