我做了一个分割视图的界面,在其中一个视图中创建了一个CTabCtrl和CTreeCtrl。
我在CTabCtrl的void CTabctrl::OnSelchange(NMHDR* pNMHDR, LRESULT* pResult)函数中,加入了如下代码void CTabctrl::OnSelchange(NMHDR* pNMHDR, LRESULT* pResult) 
{
// TODO: Add your control notification handler code here
CMainFrame* pMF=(CMainFrame*)AfxGetApp()->m_pMainWnd;
CViewTree* pViewTree=(CViewTree*)pMF->m_wndSplit2.GetPane(0,0);

switch(pViewTree->m_tab.GetCurSel())
{
case 0:
pViewTree->m_tree.ShowWindow(SW_SHOW);

case 1:
pViewTree->m_tree.ShowWindow(SW_HIDE);

} *pResult = 0;
}我希望按下TAB第一个标签的时候显示树控件,按下第二个标签的时候隐藏树控件。现在是我按下第二个标签的时候树控件会消失,再按下第一个标签的时候树控件就显示不出来了。那个树控件好像显示到TAB的后面了,被TAB盖住了,所以显示不出来。怎么解决这个问题。我的树控件和TAB控件都是在C**View中创建的,我本来想把树控件放到TAB控件类中去创建,编译的时候没错,一运行就出错。所以我就把树控件和TAB控件都放到C**View中创建了。会不会和这个有关系。
我是在C**View的OnCreate()中创建的TAB控件和树控件。

解决方案 »

  1.   

    m_tab.Create(TCS_TABS | TCS_FIXEDWIDTH | WS_CHILD | WS_VISIBLE,
    CRect(10, 100, 300, 300), this, 0x1006);

    TCITEM tcItem;
    tcItem.mask = TCIF_TEXT; tcItem.pszText = _T("Tab #1");
    m_tab.InsertItem(0, &tcItem); tcItem.pszText = _T("tab #2");
    m_tab.InsertItem(1, &tcItem);
            m_tree.Create(WS_VISIBLE | WS_TABSTOP | WS_CHILD | WS_BORDER
    | TVS_HASBUTTONS | TVS_LINESATROOT | TVS_HASLINES
    | TVS_DISABLEDRAGDROP,
    CRect(10, 300, 300, 400), this, 0x1005);

    HTREEITEM hItem,hSubItem;
    hItem = m_tree.InsertItem("Parent1",TVI_ROOT);
    hSubItem = m_tree.InsertItem("Child1_1",hItem);
    hSubItem = m_tree.InsertItem("Child1_2",hItem,hSubItem);
    hSubItem = m_tree.InsertItem("Child1_3",hItem,hSubItem);
    hSubItem = m_tree.InsertItem("child1_4",hItem,hSubItem);

    hItem = m_tree.InsertItem("Parent2",TVI_ROOT,hItem);   hItem = m_tree.InsertItem("Parent3",TVI_ROOT,hItem);  m_tree.ShowWindow(SW_SHOW);
    m_tab.SetCurSel(0);
      

  2.   

    不是被TAB盖住了,根本就不显示。
      

  3.   

    switch(pViewTree->m_tab.GetCurSel())
    {
    case 0:
    pViewTree->m_tree.ShowWindow(SW_SHOW);
         break;
    case 1:
    pViewTree->m_tree.ShowWindow(SW_HIDE);
         break;
    }break没写,悲剧,显示完了就隐藏了,难怪不能实现,换了就行了吧