Check Box 란?
말 그래도 체크할 수 있는 박스 컨트롤 입니다.
상태는 총 2가지로 "Checked", "Unchecked" 두 가지 상태입니다.
그런데 사실 MFC에서 Check Box는 Button입니다.
Check Box 생성
"도구 상자" 에서 "Check Box"를 선택하여 생성합니다.
Check Box를 사용하기 위해서 변수 생성을 합니다.
아까 "사실 MFC에서 Check Box는 Button입니다." 라고 말했었습니다.
Check Box를 변수로 제어 할때는 CButton 타입으로 선언하여 제어하게 됩니다.
Check Box 현재 상태 확인
버튼을 하나 만들어서 버튼을 클릭할 때 CheckBox의 상태를 받아와봅시다.
이렇게 이벤트 처리기를 이용하여 "BN_CLICKED" 이벤트를 추가하셔도 되고,
버튼을 더블 클릭 하셔서 이벤트를 추가하셔도 됩니다.
(BN_CLICKED : 버튼 클릭 이벤트)
void CMFCTestDlg::OnBnClickedButton1()
{
// 버튼이 클릭 되었을 때 Check Box의 상태를 받아오기
// Case 1. Check Box가 변수로 선언되어 있을 때
// ㄴ Check Box 변수 이름 : m_cboxTest
BOOL bChecked = m_cboxTest.GetCheck();
if (bChecked == TRUE)
{
AfxMessageBox(_T("Case 1 : Check Box is Checked"));
}
else
{
AfxMessageBox(_T("Case 1 : Check Box is Unchecked"));
}
// Case 2. Check Box가 변수로 선언되어 있지 않을 때
// ㄴ Check Box의 ID : IDC_CHECK1
CButton* pCboxTest = (CButton*)GetDlgItem(IDC_CHECK1);
if (pCboxTest != nullptr)
{
BOOL bChecked = pCboxTest->GetCheck();
if (bChecked == TRUE)
{
AfxMessageBox(_T("Case 2 : Check Box is Checked"));
}
else
{
AfxMessageBox(_T("Case 2 : Check Box is Unchecked"));
}
}
}
위와 같이 총 2가지 방법으로 상태를 받아올 수 있습니다.
Check Box 이벤트 : BN_CLICKED
Check Box가 Click(Check 상태를 변경하기 위해 Click) 했을 때 이벤트로 "BN_CLICKED"를 사용합니다.
태생이 CButton 이라 이벤트도 같은 것을 사용합니다.
void CMFCTestDlg::OnBnClickedCheck1()
{
// Check Box의 BN_CLICKED 이벤트
CButton* pCboxTest = (CButton*)GetDlgItem(IDC_CHECK1);
if (pCboxTest != nullptr)
{
BOOL bChecked = pCboxTest->GetCheck();
if (bChecked == TRUE)
{
AfxMessageBox(_T("Check Box is Checked"));
}
else
{
AfxMessageBox(_T("Check Box is Unchecked"));
}
}
}
해당 이벤트의 호출 시기는 Check 상태가 변경된 후에 발생합니다.
Check Box의 Button 형태 (Push-Like)
Check Box는 태생이 Button 이기에 Button 형식의 모양으로 변경이 가능합니다.
바로 속성 중에서 "누름과 유사(Push-Like)" 옵션 입니다.
해당 옵션 값이 "false"인 경우에는 일반적인 Check Box 형태의 모양이고
해당 옵션 값이 "true"인 경우에는 Button 형태의 모양으로 변합니다.
"true"인 경우에 클릭을 하게 되면 Button 형태로 클릭 상태를 유지하게 됩니다.
'Study > MFC' 카테고리의 다른 글
[MFC] ListBox 컨트롤 (리스트박스) (0) | 2022.10.13 |
---|---|
[MFC] Radio Button 컨트롤 (라디오 버튼) (0) | 2022.09.03 |
[MFC] Combo Box 컨트롤 (콤보 박스) (0) | 2022.03.05 |
[MFC] Button 컨트롤 - 색상 변경 (0) | 2022.02.17 |
[MFC] Button 컨트롤 (버튼 컨트롤) (0) | 2022.02.17 |