CHOU

[MFC] MFC의 TAB 컨트롤 사용하기 본문

Tech/Technical Tips

[MFC] MFC의 TAB 컨트롤 사용하기

chobabo 2013. 7. 19. 13:42

MFC에서 다이어로그 기반의 어플리케이션을 제작하다 보면 TAB 컨트롤을 자주 이용하게 됩니다.

MFC에서 Tab control을 사용하는 방법을 간단하게 올려볼까 합니다.

 

1. 먼저 새 프로젝트에서 MFC Application을 생성합니다.

저는 프로젝트 이름을 'test' 로 정했습니다.

 

 

2. MFC Application Wizard가 뜨면 Next을 클릭해 줍니다.

 

 

3. Application Type을 'Dialog based'로 설정하고, 'Use Unicode Libraries'을 해제 합니다.

Unicode Libraries가 체크되어 있으면 VC++ 6.0 버전과 변수 Byte 크기가 달라져서 호환에 문제가

되는 경우가 있기 때문에 해제해 주었습니다.

 

 

4. Toolbox에서 Tab Control을 드래그하여 프로젝트에 생성된 다이어로그 창에 끌어옵니다.

 

 

5. 그리고, 생성된 Tab Control 위에서 오른쪽 버튼을 클릭하여 'Add Variable'을 클릭하고,

 

 

6. Tab Control의 멤버변수를 추가해 줍니다.

(저는 변수 이름을 'm_mainTab' 으로 지정해 주었습니다.)

 

 

7. 그리고, 'Resource View'에 들어가서 Dialog 폴더에 오른쪽 클릭을 하시고

'Insert Dialog'을 통해 Tab Control에 들어갈 dialog을 생성합니다.

 

 

저는 'IDD_TAB1_DIALOG'와 'IDD_TAB2_DIALOG'을 생성하였습니다.

 

 

새롭게 생성된 다이어로그을 Tab Control을 이용하여 불러오려면

생성된 다이어로그의 'Properties'을 아래와 같이 변경해 주어야 합니다.

 

Border -> None, Style -> Child  

 

8. 새롭게 생성된 각각의 Child dialog에 대해서 Class을 추가하기 위해,

다이어로그 위에 마우스 오른쪽 버튼을 클릭한 후 'Add Class'을 선택합니다.

 

 

그리고, 적절한 클래스 이름을 부여한 후, Base Class을 'CDialog'로 변경합니다.

 

 

9. 저는 프로젝트 명을 test로 지었기 때문에 메인 다이어로그의 헤더명은 'testDlg.h'입니다.

child dialog을 사용하기 위해 'testDlg.h'에 다음과 같이 헤더 파일을 추가하고,

다이어로그안에 클래스 객체를 선언해 줍니다.

 

그리고, 윈도우를 표현하는 클래스인 'Cwnd'을 선언해 줍니다.

 

 

10. 'testDlg.cpp'의 OnInitDialog()에 아래와 같이 코드를 추가합니다.

 

 

11. 탭 클래스의 속성에서 노란색 번개 모양을 클릭한 후,

'TCN_SELCHANGE' 에서 이벤트 핸들러를 추가합니다.

 

 

12. 추가된 이벤트 핸들러 안에 다음과 같이 코딩을 하면 완성 됩니다.