我创建了一个单文档的工程,在视图类OnCreate(LPCREATESTRUCT lpCreateStruct)里面动态创建了一个CTabCtrl,
但是显示出来的结果是标签没有了准确的说是一条线,光有一个选项卡上的控件,
我在OnSize(UINT nType, int cx, int cy)
里面加了些控制控件大小变化的代码就显示出来了。奇怪了,有人碰到过吗?
补充一下我的视图是基于CFormView的,在OnSize里面的代码如下:
if (m_wndTabSheet.GetSafeHwnd())
{
CRect rect;
GetClientRect(rect);
CMainFrame *pMainWnd = reinterpret_cast<CMainFrame *>(AfxGetMainWnd());
m_wndTabSheet.MoveWindow(rect);
}

解决方案 »

  1.   

    你怎么不交代你是如何创建这个TABCTRL控件的呢???
      

  2.   

    CRect rect;
    GetClientRect(&rect);
    // TODO: Add your specialized creation code here
    m_tab.Create(TCS_TABS | WS_CHILD | WS_VISIBLE, rect, this, 1101);
    m_tab.InsertItem(0, _T("AA"));
    m_tab.InsertItem(1, _T("BB"));
    m_tab.InsertItem(2, _T("CC"));
      

  3.   

    既然在OnSize中MoveWindow了,创建时的大小就不是问题,LZ把代码贴全些
      

  4.   

    LZ说在onsize中改变大小之后正常了,基本上就是创建时出现的问题··
      

  5.   

    在Create时只做数据准备,并未绘制窗口,所以在OnSize时改变窗口和控件的尺寸才是正确的。
      

  6.   

    你好像没有看清楚问题。他是加了OnSize的处理后才显示出大小,没加时不显示大小,这才来问的。
      

  7.   

    int CMYView::OnCreate(LPCREATESTRUCT lpCreateStruct) 
    {
    if (CFormView::OnCreate(lpCreateStruct) == -1)
    return -1;

    // TODO: Add your specialized creation code here
    if ( !m_wndTabSheet.Create(this, CRect(0,0,0,0), TCS_TABS|WS_CHILD | WS_VISIBLE) )
    {
    TRACE0("Failed to create tab sheet\n");
    return -1;      // fail to create
    }

    m_pMyInfoView=new CMyInfoView;//
        m_pMyInfoView->Create(NULL, NULL, /*WS_BORDER |*/ WS_CHILD | WS_VISIBLE,
    CRect(0, 0, 0, 0), &m_wndTabSheet, IDD_FORMVIEW_GROUPBYA, NULL);    ((CMyInfoView *)m_pMyInfoView)->OnInitialUpdate(); m_pMyInfoView1=new CMyInfoView1;//
    m_pMyInfoView1->Create(NULL, NULL, /*WS_BORDER |*/ WS_CHILD | WS_VISIBLE,
    CRect(0, 0, 0, 0), &m_wndTabSheet, IDD_FORMVIEW_GROUPBYB, NULL);    ((CMyInfoView1 *)m_pMyInfoView1)->OnInitialUpdate();
    //////////////////////////////////////////////////////////////////////////
    m_wndTabSheet.AddPage(m_pWellInfoView,TEXT("A组列表"),AfxGetApp()->LoadIcon(IDI_ICON1));
    m_wndTabSheet.AddPage(m_pUserInfoView,TEXT("B组列表"),AfxGetApp()->LoadIcon(IDI_ICON2));          
    return 0;
    }再看看吧
      

  8.   

    汗, 看见了. 你的CRect(0, 0, 0, 0), 你说它会被你看到吗 ?