-
[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 함수를 사용해서 아래와 같은 코드를 각각의 버튼 클릭 처리 함수에 넣어준다.
1234567891011121314151617181920void 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'MFC > Visual C++ 2008' 카테고리의 다른 글
[MFC] 콤보 상자(Combo Box) 변화된 값 가져오기, 초기 값 설정하기 (0) 2021.01.25 [MFC] 에디트 컨트롤 GetDlgItemText, SetDlgItemText (0) 2021.01.25 [MFC] 버튼 ID와 컨트롤 주소를 이용해서 캡션 (Caption) 바꾸기 (0) 2021.01.25 [MFC]버튼(Button) 클릭으로 캡션 바꾸기 (0) 2021.01.25 [MFC]버튼(Button) 클릭 이벤트 처리하기 (0) 2021.01.25