我是一位VC初学者,在学习过程中遇到了一点儿小问题:我在一个对话框中放了一个Tab control的控件,然后想把其他一些控件放到它的上面,可是其它控件总是在Tab control的后面,使我无法对各个控件排列它们的位置.
请问:如何将其它控件放置到Tab control的上面.

解决方案 »

  1.   

    你可以创建一个dialog在tab页上
    CFileDialog dlg;
    dlg.Create(IDD_FILE, GetDlgItem(IDC_CTRL_TAB));
    change the dlg style to child
    dlg.ShowWindow(SW_SHOW);
    然后,把你需要的显示的控件放到dlg内即可
      

  2.   

    对于Tab control通常要用code来实现
      

  3.   

    原来就是根据TabIndex的顺序来判断先后顺序的。你的tab控件后放试试看!
      

  4.   

    楼上不要将VC当中的Tab Control看成了是Delphi或C++Builder中的一样,那样就大错特错了!
    关于在VC中如何使用这个控件,大体思路可以这样:
    1)在资源管理器中创建几个Dialog, 分别生成相应的类(基于CDialog),注意,要设置Dialog的Style为"Child", Border为"None";
    2)在CDialog::OnInitDialog中,调用CTabCtrl::InsertItem(...)方法添加几个页面
    3)调用CDialog的Create方法创建几个对话框变量;
    3)在主窗口中,捕获Tab Control的页选择事件,在其中对索引值进行分类,然后就显示你的对话框,注意显示一个的同时,要隐藏其他的对话框
        不知道有没有说清楚,俺准备接分了!!
      

  5.   

    谢谢大家的踊跃参与。
    zcm242004(抽象的爱) 说的很对!
      

  6.   

    如果用MFC的话:用CPropertySheet
      

  7.   

    用CPropertySheet简单的做法如下
    CPropertySheet m_PageSheet;
             在资源管理器中创建几个Dialog, 分别生成相应的类(基于CDialog),注意,要设置Dialog的Style为"Child", Border为"None";
             MyDialog m_Page1;
             MyDialog m_Page2;
             MyDialog m_Page3;///////////////////调用
             m_PageSheet.Construct("title", this);
    if(m_PageSheet.GetPageCount() < 3)
    {
    m_PageSheet.AddPage(&m_Page1);
    m_PageSheet.AddPage(&m_Page2);
    m_PageSheet.AddPage(&m_Page3);
    }
    m_PageSheet.SetActivePage(2);
    m_PageSheet.SetActivePage(1);
    m_PageSheet.SetActivePage(0);
    m_PageSheet.Domodal();