none
MFC TabControl 에 대해 여쭤봅니다. RRS feed

  • 질문


  • 텝컨트롤에

    CRect MainRect;
    m_TEST.GetClientRect(&MainRect);
    m_TEST.Create(IDD_DIALOG1, &m_TEST);
    m_TEST.SetWindowPos(NULL, 0, 0,
    MainRect.Width(), MainRect.Height(),
    SWP_NOZORDER);

    이런식으로 추가만 해두고, InsertItem을 하지 않았습니다.

    그렇다면 당연히 Tab Control의 탭에 등록이 안되겠지요..

    등록은 하지않았으니, Dialog가 텝에 꽉 맞게 나와야하는데

    Tab부분만 흰색으로 나옵니다.

    TabControl에서 탭자체를 없애는 방법은 없을까요?

    Dialog를 TabControl에 딱 맞게 출력해야합니다.

    만약에 안될경우 타 방법이라도,, 알려주세요..

    2012년 5월 4일 금요일 오전 5:31

답변

  • Tab 컨트롤의 탭 영역만 흰색으로 나오는것이 아니라 Tab 페이지가 추가되어
    있지 않으면 Tab 컨트롤의 전체 영역이 다 흰색으로 나옵니다.

    따라서 Tab 컨트롤에 탭 페이지가 하나도 등록이 안되어 있을때 흰색으로 나오는게
    싫으시다면 그냥 Hide 시키면 되는거 아닌가요? Hide 된다고 크기가 없어지는것이
    아니기 때문에 위치참조는 정상적으로 될겁니다.

     

    Tab 컨트롤의 GetRowCount() 함수로 Tab 페이지의 수를 확인할수 있으며
    그 수가 0이라면 탭컨트롤.ShowWindow(SW_HIDE); 를 사용하여 해당
    Tab 컨트롤을 감추시면 됩니다.

    2012년 5월 4일 금요일 오전 7:44
    중재자

모든 응답

  • Tab 컨트롤의 탭 영역만 흰색으로 나오는것이 아니라 Tab 페이지가 추가되어
    있지 않으면 Tab 컨트롤의 전체 영역이 다 흰색으로 나옵니다.

    따라서 Tab 컨트롤에 탭 페이지가 하나도 등록이 안되어 있을때 흰색으로 나오는게
    싫으시다면 그냥 Hide 시키면 되는거 아닌가요? Hide 된다고 크기가 없어지는것이
    아니기 때문에 위치참조는 정상적으로 될겁니다.

     

    Tab 컨트롤의 GetRowCount() 함수로 Tab 페이지의 수를 확인할수 있으며
    그 수가 0이라면 탭컨트롤.ShowWindow(SW_HIDE); 를 사용하여 해당
    Tab 컨트롤을 감추시면 됩니다.

    2012년 5월 4일 금요일 오전 7:44
    중재자
  • 음.. 그걸여쭙는게아닌데..

    " Tab 컨트롤의 전체 영역이 다 흰색으로 나옵니다."

    라고 말씀하셨는데, 

    TabControl 인 m_AddonTab 에

    CString strTmp = _T("");
    strTmp.Format(_T("메인"), 0);
    m_AddonTab.InsertItem(0, strTmp, 0);

    이렇게 하지않고, 

    CRect MainRect;
    m_AddonTab.GetClientRect(&MainRect);
    m_MainForm.Create(IDD_MAINFORM, &m_AddonTab);
    m_MainForm.SetWindowPos(NULL, 0, 0,
    MainRect.Width(), MainRect.Height(),
    SWP_SHOWWINDOW | SWP_NOZORDER);
    m_pMainShow = &m_MainForm;

    으로만 추가를 합니다;

    void CDlg::OnBnClickedMainbutton()
    {
    m_MainForm.ShowWindow(SW_SHOW);
    m_pMainShow = &m_MainForm;
    InvalidateRect(NULL,TRUE);
    }

    이런식으로 하는거죠.

    결론적으로 여쭈어 보는것은

    이렇게 하고 Dialog를 출력시킬경우

    원래 TabControl 에서 Tab이름이 떠야할부분이 흰색으로 처리되어

    TabControl에 Dialog가 꽉차게 출력이 안된다는것입니다.

    2012년 5월 4일 금요일 오전 8:30