티스토리 뷰

프로그래밍/MFC 프로그래밍

MFC checkbox 체크여부 확인

주식하는 개발자 2021. 6. 13. 17:26

MFC checkbox - 체크 여부 확인

 

MFC 도구 중

check box 체크 여부를 확인하는 방법 2가지를 알아보겠습니다.

 

(체크박스 ID가 IDC_CHECK1이라고 가정했을 때)

 

1. ((CButton*)GetDlgItem(IDC_CHECK1))->GetCheck()

체크박스가 체크되면 TRUE가 반환되고

체크되어있지 않으면 FALSE가 반환됩니다.

 

2. m_Check1.GetCheck()

이 방법은 체크박스에 변수를 추가시켜 주어야 합니다.

자세한 방법은 아래에 설명드리겠습니다.

 

체크박스의 변수를 m_Check1로 설정했을 때

체크박스가 체크되어 있으면 TRUE,

체크되어있지 않으면 FALSE가 반환됩니다.

 

여기까지 체크 여부를 확인할 수 있는 방법이었습니다.

 

추가적으로 

SetCheck()를 사용해서 

체크박스를 체크해주거나 체크 해제를 해줄 수 있습니다.

SetCheck(1) - 체크박스 체크

SetCheck(0) - 체크박스 체크 해제

MFC checkbox - 간단 예제

 

한쪽 체크박스가 체크되면

다른 쪽 체크박스가 해제되는

간단 예제를 살펴보겠습니다.

 

1) 먼저 체크박스 2개를 만들어줍니다.

 

2) 체크박스의 변수를 아래와 같이 추가시켜줍니다.

 

3) 마지막으로 체크박스를 더블클릭해주면

체크박스 이벤트가 발생할 때 

샐행되는 함수가 생성됩니다.

 

그 함수 안에 아래와 같이

코드를 추가시켜 줍니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
void CMFCcheckboxDlg::OnBnClickedCheck1() // 첫번째 체크박스 이벤트 함수
{
    if (((CButton*)GetDlgItem(IDC_CHECK1))->GetCheck()) 
    // 첫번째 체크박스가 체크되어 있으면 true 반환
    {
        ((CButton*)GetDlgItem(IDC_CHECK2))->SetCheck(0); 
         // 두번째 체크박스 체크 해제
    }
}
 
 
void CMFCcheckboxDlg::OnBnClickedCheck2() // 두번째 체크박스 이벤트 함수
{
    if (((CButton*)GetDlgItem(IDC_CHECK2))->GetCheck()) 
    // 두번째 체크박스가 체크되어 있으면 true 반환
    {
        ((CButton*)GetDlgItem(IDC_CHECK1))->SetCheck(0); 
         // 첫번째 체크박스 체크 해제
    }
}
cs

 

감사합니다!