다이얼로그 배경색 변경
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로 넣어서 배경색을 넣어준다.
끝~~~
'개발공부 > C++' 카테고리의 다른 글
[C++] csv 파일 쓰기 (0) | 2024.07.22 |
---|---|
[C++ MFC] Tray 기능 사용하기, 예제코드 (0) | 2024.05.28 |
[C++] 템플릿 공부하기 (0) | 2024.04.09 |
[C++] 하위 폴더 자동 생성 코드 (0) | 2024.01.16 |
[C++ MFC] 콤보박스 리스트 길이가 짧을 때 (0) | 2024.01.04 |