탭컨트롤이 위치한 Main_Form_View가 있구요 그 탭1, 탭2에 각각 들어갈 Tab1, Tab2 클래스가 있습니다
다음은 Main_Form_View의 OnInitDialog에서 두 탭을 초기화한 내용입니다.
BOOL CMain_Form_View::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
m_CtrlTab.InsertItem(0, _T("파일 리스트")); //tab1
m_CtrlTab.InsertItem(1, _T("폴더 경로")); //tab2
CRect Rect;
m_CtrlTab.GetClientRect(&Rect); //탭의 크기를 구함
m_Tab1.Create(IDD_DIALOG_ROUTE1, &m_CtrlTab); //탭1 생성
m_Tab1.SetWindowPos(NULL, 5, 25, Rect.Width()-7, Rect.Height()-27,
SWP_SHOWWINDOW | SWP_NOZORDER);
m_pwndShow = &m_Tab1; //탭1 지정
m_Tab2.Create(IDD_DIALOG_ROUTE2, &m_CtrlTab); //탭2 생성
m_Tab2.SetWindowPos(NULL, 5, 25, Rect.Width()-7, Rect.Height() -27,
SWP_NOZORDER);
m_Tab1.ShowWindow(SW_SHOW); //탭1 SHOW
m_Tab2.ShowWindow(SW_HIDE); //탭2 HIDE
//////////////////////////////////////////////////////////////////
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
근데 이때 탭2의 소스에
BOOL CTab2::OnInitDialog()
{
CDialog::OnInitDialog();
AfxMessageBox(m_Pathname);
return TRUE;
}
위와 같은 소스를 추가하면 Main_Form_View의 두번째 탭에다
탭2의 다이얼로그가 초기화 될때 메세지박스가 떠야 하는거 아닌가요?
Create도 OnCreate도 안뜨더라구요
혹시몰라 해본 DoModal에서도요.
만약 탭2의 내용을 초기화 하고싶다면 어디서 해야하나요?
+
OnInitDialog 함수는
//{{AFX_MSG(CTab2)
virtual BOOL OnInitDialog();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
이와같이 헤더파일 안의 MSG 함수 구분하는 주석 사이에 선언되는데
다른 함수와 달리 afx_msg가 안달려있어서 그런지 cpp에선
BEGIN_MESSAGE_MAP(CTab2, CDialog)
//{{AFX_MSG_MAP(CTab2)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
이처럼 별도로 메세지를 받질않네요. 이건 왜이런건가요?
WM_InitDialog의 메세지는 바로 프로시저로 전달되는건가요?
질문이 많아 죄송합니다(_ _)