* 임무 *
MFC에서 다이얼로그를 만들어서 사용하는 경우, 라디오 버튼을 사용하는 경우가 있다.
이때 모든 라디오 버튼을 한가지 용도로만 사용하면 좋겠지만 아쉽게도 몇개의 그룹으로 나누어서 사용해야 하는 경우가 있다.
MFC는 친절하게 라디오 버튼 하나를 누르면 다른 라디오 버튼에서 선택표시(가운데 찍히는 점)를 빼앗아 준다.
그룹이 여러개인 경우, 이렇게 되면 다른 그룹의 선택표시까지 빼앗아 버려 과잉 친절이 된다.
예) 하나의 다이얼로그에서 색상과 크기를 라디오 버튼으로 받는 경우를 생각해 보자.
이렇게 되면 색상을 입력받는 라디오 버튼들과 크기를 입력받는 라디오 버튼들로 2개의 그룹이 생긴다.
원래대로라면 크기이던 색상이던 하나의 버튼을 선택하면 나머지 그룹의 버튼에서도 선택점이 사라져 불편하다.
* 해결책 *
물론 MFC 만든 사람도 이런 문제를 해결하기 위해 방법을 마련해 두었다.
각각의 라디오 버튼에는 '속성'을 세팅할 수 있게 되어있다.
각 그룹의 첫번째 라디오 버튼의 '속성' 항목에서 'GROUP'을 TRUE로 설정하는 방법이다.
나머지 멤버들은 그대로 FALSE로 해둔다.
예) 따라서 아까의 경우, 색상의 그룹에서 맨처음 라디오 버튼 한 개와 크기의 그룹에서 맨처음 라디오 버튼 한개,
그렇게 두개만 GROUP 속성을 TRUE로 바꾸고 나머지는 그대로 놓아두면 된다.
그럼 MFC는 다이얼로그를 생성할때 휘하의 버튼을 등록하면서 GROUP속성이 TRUE로 되어있는 라디오 버튼을 발견하면 새로운 그룹으로 인식해 버린다. 나머지 FALSE 속성을 가진 라디오 버튼은 자연스럽게 그 그룹의 일원으로 인식되는 것이다.
이때 어느 인식되는 버튼의 순서는 해당 다이얼로그를 포함한 리소스(.rc) 파일을 열어보면 나온다. 이 파일을 열 때 리소스 에디터가 아닌 텍스트 에디터로 열면 각 컨트롤의 순서와 ID, 그리고 속성을 한눈에 볼 수 있다.
* 결론 *
이렇게 하면 각 그룹별로만 선택표시가 하나씩 나타나서 상호 간섭을 피할 수 있다.
'C & C++ > MFC 컨트롤' 카테고리의 다른 글
[Event] 여러개의 파일을 선택 (0) | 2011.01.12 |
---|---|
[Dialog] 공용 대화상자 (Common Dialog) 사용법 (0) | 2011.01.12 |
[ToolBar] MFC 트루컬러 툴바 만들기 (0) | 2011.01.12 |
[Event] 오른쪽 마우스버튼으로 여는 컨텍스트 메뉴 (0) | 2011.01.12 |
[Edit] CEdit Controller 의 사용법 (0) | 2011.01.12 |
댓글