-
[MFC] 콤보 상자(Combo Box) 변화된 값 가져오기, 초기 값 설정하기MFC/Visual C++ 2008 2021. 1. 25. 14:41반응형
이 포스팅에서는 콤보 상자를 이용해서 콤보 상자로 선택한 값을 가져오는 법, 그리고 콤보 상자의 초기 값을 설정하는 방법에 대해서 설명해 보고자 한다.
** 프로젝트 생성 방법은 garage-fullof-dummy.tistory.com/51 <<< 여기로 가시면 됩니다!
1. 우선 빈 다이얼로그에 콤보 상자를 하나 얹어준다.
2. 콤보 상자에 변수 추가를 해준다.
두 개의 변수를 추가해 줄텐데 한개를 Control 범주, 한 개는 Value 범주의 변수를 추가해준다.
3. 콤보 상자의 속성에서 Type을 Drop List로 바꿔준다.
4. 콤보 상자를 누르면 나올 목록들을 OnInitialDialog() 부분에 작성해 준다.
//TestDlg.cpp
여기서 AddString 함수는 콤보 상자의 리스트 들을 추가해주고, SetCurSel은 매개변수가 콤보 상자의 인덱스를 의미한다. 즉, 해당 인덱스의 목록을 Default 값으로 표시하다.
프로젝트를 실행해 보면, 1이 인덱스 "0"번째에 해당되기 때문에 콤보 상자의 초기 값이 1로 나타나는 것을 볼 수 있다.
5.이제 콤보 상자에서 변화된 값을 가져온 것을 시각적으로 보여주기 위해서 에디트 컨트롤을 추가해 보자.
6. 이제 콤보 상자가 선택한 항목을 바꿀 때의 변화를 이벤트 처리 함수를 추가하여 처리해주자.
저의 경우 CBN_SELCHANGE와 CBN_CLOSEUP 메시지를 사용했을 때, 간단한 프로젝트에서는 별 차이가 없는 것 같아서 섞어서 사용하고 있습니다.
확실한 차이를 알려면 공부를,,, 더 해보도록 하죠..
여기서는 일단 CBN_SELCHANGE 선택!
이 함수에서 처리해 줄 부분은 간단합니다. 선택한 목록을 업데이트 해주어 콤보 상자의 선택 변화가 Value 변수에도 적용되게 UpdataData() 함수를 사용해 줍니다.
앗, 그러면 에디트 컨트롤은?!
7. 에디트 컨트롤에 변경된 값을 표시할 수 있도록 코드를 작성해 줍니다.
혹시 에디트 컨트롤에 대해서 궁금하다면, garage-fullof-dummy.tistory.com/62 글을 참고 해주세요!
8. 코드 작성을 마치고, 컴파일을 하면, 아래처럼 변경된 값을 에디트 컨트롤이 읽어 오는 것을 볼 수 있습니다!
728x90'MFC > Visual C++ 2008' 카테고리의 다른 글
[MFC] 라디오 버튼 사용하기 (0) 2021.01.25 [MFC] List Box 사용법 및 응용(InsertString, DeleteString, GetCurSel, GetText,Get Count) (0) 2021.01.25 [MFC] 에디트 컨트롤 GetDlgItemText, SetDlgItemText (0) 2021.01.25 [MFC] 체크 박스 체크 상태 확인 및 활용 (0) 2021.01.25 [MFC] 버튼 ID와 컨트롤 주소를 이용해서 캡션 (Caption) 바꾸기 (0) 2021.01.25