ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • ComboBox
    I'm a Developer/MFC 2015. 8. 17. 17:23

    Combo Box 컨트롤에서 선택할 때마다 다음 콤보박스에서 선택할 수 있는게 달라지도록 하고 싶은 경우가 있다. 예를 들어 


    첫 번째 콤보박스에서 "서울시"를 선택하면 그 다음 콤보박스는 노원구,성북구,강남구,강북구 등등 서울에 있는 지역이름을 선택할 수 있고

    만약 첫 번째 콤보박스에서 "경기도"를 선택하면 그 다음 콤보박스는 하남시, 광명시, 고양시 등등 경기도에 있는 지역이름을 선택할 수 있게 하는 경우이다.


    이 경우 우리는 Combo Box 컨트롤의 선택이 바뀔 때마다 발생하는 CBN_SELCHANGE 이벤트를 처리하면 된다.


    Combo Box1, 2, 3를 각각 cBox1, cBox2, cBox3라고 선언했다고 가정했을 때 다음과 같은 로직을 이용하면 된다.


    먼저 cBox1의 선택에 따라 cBox2의 내용을 바꾸고 싶을 때 

    CBN_SELCHANGE 이벤트 처리기 안에서 

    컨트롤 값들을 가져와서 [ UpdateData() ]

    cBox1보다 하위 컨텐츠들의 값을 초기화 시킨다. [ cBox1.ResetContent() ]

    그리고 cBox2에 재설정 될 데이터를 담기 위해 cBox2와 같은 데이터타입으로 포인터 변수를 하나 만들어서

    그 포인터변수 안에 switch문을 통해 cBox1의 선택에 따라 각각 무엇을 넣어줄지 case별로 설정해두고

    cBox2에 포인터변수로 받아온 값들을 넣어준다. [ AddString(str) ]

    그리고 마지막으로 값을 띄워준다. - [ 데이터 보여주는 함수 ] 


    'I'm a Developer > MFC' 카테고리의 다른 글

    OnPaint OnDraw  (1) 2015.08.18
    윈도우 메뉴  (0) 2015.08.17
    3. 윈도우 프로그램의 뼈대  (0) 2015.08.10
    2. 변수 표기법  (0) 2015.08.07
    1. MFC란?  (0) 2015.08.07

    댓글

Designed by Tistory.