탭콘트롤 사용법

Code 2014.09.27 17:01

Visual Studio MFC TabControl 사용법


//==================================
* 'Tab Control' 추가 (ex, IDC_TAB1)
    - 멤버변수 추가
        - 방법1 : '탭콘트롤'에서 우클릭 -> Add Variable


        - 방법2 : Class Wizard (Ctrl+Shift+X) -> Member Variables
        - IDC_TAB1, CTabCtrl, m_TabCtrl1
   


//=======================================
* 각 탭에 사용할 하위 다이얼로드 박스 추가
    - Resource View -> Insert Dialog (ex, IDD_DLG_TAB1, IDD_DLG_TAB2)
   

- 속성 수정
        - Style : Child,    Border : None
  

    - Dialog Class 추가
        - 다이얼로그에서 우클릭 -> Add Class (ex, Tab1, Tab2)


    - 생성한 탭 클래스를 '메인 대화상자의 멤버변수'로 추가
#include "Tab1.h"
#include "Tab2.h"

class {
...
public:
    Tab1    m_tab1;
    Tab2    m_tab2;
    CDialogEx    *m_pDlgCurTab;//현재 탭 저장용

    - OnInitDialog() 함수 소스 코드 수정   
    //탭 추가
    m_TabCtrl1.InsertItem(1, _T("탭 1"));
    m_TabCtrl1.InsertItem(2, _T("탭 2"));

    //
    CRect rect;
    m_TabCtrl1.GetClientRect(&rect);
    const int W = 3, T = 23;
    m_tab1.Create(IDD_DLG_TAB1, &m_TabCtrl1);
    m_tab1.SetWindowPos(NULL, W, T, rect.Width()-W*2, rect.Height()-(T+W), SWP_SHOWWINDOW | SWP_NOZORDER);
    m_pDlgCurTab = &m_tab1;

    m_tab2.Create(IDD_DLG_TAB2, &m_TabCtrl1);
    m_tab2.SetWindowPos(NULL, W, T, rect.Width()-W*2, rect.Height()-(T+W), SWP_NOZORDER);



//====================
* '탭 콘트롤' 클릭 처리
    - 방법1 : '탭 콘트롤' 더블 클릭해서    OnTcnSelchangeTab1() 함수 추가
    - 방법2 : 클래스 위저드 -> Commands -> IDC_TAB1 -> TCN_SELCHANGE


    - OnTcnSelchangeTab1() 함수에 코드 추가
    int nIndex = m_TabCtrl1.GetCurSel();   
    switch (nIndex)
    {
    case 0:
        if (m_pDlgCurTab){ m_pDlgCurTab->ShowWindow(SW_HIDE); }
        m_tab1.ShowWindow(SW_SHOW);        m_pDlgCurTab = &m_tab1;
        break;
    case 1:
        if (m_pDlgCurTab){ m_pDlgCurTab->ShowWindow(SW_HIDE); }
        m_tab2.ShowWindow(SW_SHOW);        m_pDlgCurTab = &m_tab2;
        break;
    }



Posted by 코덴스

댓글을 달아 주세요