-
[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