ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [MFC] 체크 박스 체크 상태 확인 및 활용
    MFC/Visual C++ 2008 2021. 1. 25. 12:10
    반응형

    이 포스팅에서는 Check1이 선택되면, Check2 를 선택 해제 하고, Check2를 선택하면 Check1이 선택 해제 되는 프로젝트를 만들어 보겠습니다.

    이렇게 한쪽이 선택되면 다른 쪽이 선택 해제 되는 것은 라디오 버튼이 더 좋다고 하셔서... 라디오 버튼에 대한 포스팅도 할 것이지만, 일단은 체크 박생 체크 상태 확인 코드도 공부할 겸 포스팅!!

     

     

     

    CButton::GetCheck()

     

    이 함수는 라디오 단추 또는 체크 박스의 확인 상태를 검색하여 반환합니다.

     

    int GetCheck() const;

     

    docs.microsoft.com/ko-kr/cpp/mfc/reference/cbutton-class?view=msvc-160#getcheck

     


    위의 반환 값 중 마지막 값은 언제 사용하는지 확실하지 않다. 사용해 본적이 없으므로...

    혹시 사용하게 되면 포스팅 해야지

     

    오늘 포스팅에는 BST_CHECKED를 사용해서 체크 박스의 상태를 검사 해 보자.

     

     

    1. 체크 박스도 버튼과 마찬가지로 오른쪽 마우스로 '이벤트 처리 함수'를 추가 해주거나 더블 클릭을 통해 클릭 이벤트 처리 함수를 추가해준다. 체크 박스 2에도 동일하게 버튼 클릭 이벤트 처리 함수를 추가한다.

     

    잘 추가된 버튼 클릭 처리 함수

    2. GetCheck 함수를 사용하기 위해서 체크 박스에 변수를 추가해준다.

     

     

     

    변수 이름은 m_checkbox_ctrl 과 m_checkbox_ctrl2로 설정 해주고,  범주는  Control로 지정해준다.

     

     

     

     

    3. checkbox1 을 클릭했을 때, 이미 선택되어 있는 checkbox2의 상태가 바뀌려면 checkbox2의 체크 상태를 바꿔줄 수 있는 함수가 필요하다.

     

    CButton::SetCheck()

     

    이 함수는 라디오 단추 또는 체크 박스를 설정하거나 다시 설정한다.

     

    void SetCheck(int nCheck);

     

    매개변수 : nCheck는 체크 상태를 지정하고, 아래의 값 중에 하나를 선택할 수 있다.

     

     

     

    4. GetCheck 함수와 SetCheck 함수를 사용해서 아래와 같은 코드를 각각의 버튼 클릭 처리 함수에 넣어준다. 

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    void CTestDlg::OnBnClickedCheck1()
    {
        // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
     
        if(m_checkbox_ctrl.GetCheck()==BST_CHECKED)
        {
            m_checkbox_ctrl2.SetCheck(BST_UNCHECKED);
        }
     
    }
     
    void CTestDlg::OnBnClickedCheck2()
    {
        // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
        if(m_checkbox_ctrl2.GetCheck()==BST_CHECKED)
        {
            m_checkbox_ctrl.SetCheck(BST_UNCHECKED);
        }
    }
     
    cs

     

     

    5. 컴파일을 완료해 보면 한 쪽을 체크 하면 다른쪽은 체크하지 않은 상태로 바뀌는 것을 볼 수 있다.

     

     

     

    728x90

    댓글

Designed by Tistory.