VS 2019 기준 MFC 버튼 배경색과 텍스트 색 변경하는 방법을 알아보겠습니다.
Button 생성
[리소스뷰] -> [Dialog] -> [도구상자]-> [Button] 클릭하여 버튼 생성합니다.
Button 변수 추가
[우클릭] -> [변수 추가]를 클릭하여 색상을 변경하고 싶은 버튼의 변수를 추가합니다.
변수를 추가할때 이름에는 버튼의 변수명을, 변수 형식에는 기본으로 설정되어 있는
CButton를 CMFCButton으로 변경해주세요.
Button 배경색 및 텍스트 색상 변경
버튼의 배경색과 텍스트를 변경하기 위해 CMain.cpp에서 아래 내용을 주석처리 합니다.
이렇게 하면 사용자 정의 MFC 테마를 비활성화 할 수 있습니다.
// *.cpp
// MFC 컨트롤의 테마를 사용하기 위해 "Windows 원형" 비주얼 관리자 활성화
// CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerWindows));
이제 변수명을 사용하여 배경색 및 텍스트 색상을 변경합니다.
아래 코드를 OnInitDialog()에 추가하면 텍스트 및 배경색이 변경된 것을 확인할 수 있습니다.
// *.h
CMFCButton m_btn_resize;
// *.cpp
BOOL CMainDlg::OnInitDialog()
{
const COLORREF color_text = RGB(255, 255, 255);
const COLORREF color_background_btn = RGB(30, 30, 30);
m_btn_resize.EnableWindowsTheming(FALSE);
m_btn_resize.SetFaceColor(color_background_btn);
m_btn_resize.SetTextColor(color_text);
}
그런데 변경된 버튼 모양이 못생긴 3d 테두리를 가진 것을 확인할 수 있습니다.못생긴 3d 테두리를 없애는 코드는 아래 두줄을 OnInitDialog()에 더 추가하면 됩니다.
// *.h
CMFCButton m_btn_resize;
// *.cpp
BOOL CMainDlg::OnInitDialog()
{
const COLORREF color_text = RGB(255, 255, 255);
const COLORREF color_background_btn = RGB(30, 30, 30);
m_btn_resize.EnableWindowsTheming(FALSE);
m_btn_resize.m_nFlatStyle = CMFCButton::BUTTONSTYLE_FLAT;
m_btn_resize.m_bTransparent = false;
m_btn_resize.SetFaceColor(color_background_btn);
m_btn_resize.SetTextColor(color_text);
}
[Reference]
'Programming > MFC' 카테고리의 다른 글
[MFC] mfc 버튼에 배경색 없는 아이콘 넣기 (vs 2019) (0) | 2024.12.28 |
---|---|
[MFC] 버튼 눌러서 윈도우 파일탐색기 열기 (vs 2019) (0) | 2024.12.16 |
[MFC] 엑셀 파일 읽기 (vs2019) (0) | 2024.08.06 |
[MFC] radio 버튼 배경색 및 텍스트 색상 변경하기 (vs 2019) (0) | 2024.06.04 |