VSTab Control控件的使用

1. 在Visual Studio 2005中,新建一个项目,选择MFC应用程序, 取名MyTab, 选择Dialog based(基于对话框), 然后Finish.
2. 删除对话框上默认添加的三个控件. 添加Tab Control控件,右键选择“属性”,并设置ID为IDC_TABMAIN。 调速尺寸使其布满整个对话框. 选中Tab Control控件,右键选择“添加变量”,变量名为m_tabMain. 类型为CTabCtrl.
3. 在CXXXDlg类中的对话框初始化函数OnInitDialog里面添加如下代码:

//添加选项卡
 m_tabMain.InsertItem(0,_T("选项卡1"));//“选项卡1”可更改,是sheet页的名字;
 m_tabMain.InsertItem(1,_T("选项卡2"));
 m_tabMain.InsertItem(2,_T("选项卡3")); 

4.在资源视图里的Dialog,点击"Dialog”右键,选择"插入Dialog”,插入三个Dialog, ID分别命名为IDD_DIALOG1, IDD_DIALOG2, IDD_DIALOG3(可根据具体Dialog的用途来命名).  每个Dialog的属性中,style为Child, Border为None, 宽度调整下. 再分别为其添加对应的基于CDialog类CDialog1, CDialog2, CDialog3.

5. 在类视图中,点CMyTabDlg类右键,选择添加变量,依次添加三个成员变量m_para1, m_para2, m_para3(命名也随意,最好对应着类), 分别是三个子对话框的实例. 代码如下:

 CDialog1 m_para1;
 CDialog2 m_para2;
 CDialog3 m_para3;

 6. 在IDD_MYTAB_DIALOG对话框的初始化函数OnInitDialog里面添加如下代码:

//关联对话框,并且将IDC_TABMAIN控件设为父窗口
 m_para1.Create(IDD_DIALOG1,GetDlgItem(IDC_TABMAIN));
 m_para2.Create(IDD_DIALOG2,GetDlgItem(IDC_TABMAIN));
 m_para3.Create(IDD_DIALOG3,GetDlgItem(IDC_TABMAIN));


 //获得IDC_tabMain客户区大小
 CRect rs;
 m_tabMain.GetClientRect(&rs);

 //调整子对话框在父窗口中的位置,可以改动数值,使子窗体的大小合适;
 rs.top+=20;
 rs.bottom-=3;
 rs.left+=2;
 rs.right-=2;

 //设置子对话框尺寸并移动到指定位置
 m_para1.MoveWindow(&rs);
 m_para2.MoveWindow(&rs);
 m_para3.MoveWindow(&rs);

 //分别设置隐藏和显示
 m_para1.ShowWindow(true);
 m_para2.ShowWindow(false);
 m_para3.ShowWindow(false);

 //设置默认的选项卡
 m_tabMain.SetCurSel(0);

7. 在资源视图中,右键Tab Control,选择属性,点击   (控件事件),TCN_SELCHANGE事件右边的下拉列表中选择“添加OnTcnSelchangeTabmain”,这样就有了切换sheet页的响应函数OnSelchangeTabtest(NMHDR* pNMHDR, LRESULT* pResult) ,函数体代码如下:

// TODO: 在此添加控件通知处理程序代码

 int CurSel = m_tabMain.GetCurSel();
 switch(CurSel)
 {
 case 0:
      m_para1.ShowWindow(true);
      m_para2.ShowWindow(false);
      m_para3.ShowWindow(false);
      break;
 case 1:
      m_para1.ShowWindow(false);
      m_para2.ShowWindow(true);
      m_para3.ShowWindow(false);
      break;
 case 2:
      m_para1.ShowWindow(false);
      m_para2.ShowWindow(false);
      m_para3.ShowWindow(true);
      break;
 default:;
 } 
 *pResult = 0;

8.现在在类视图中,点根目录mytab,右键选择“生产”,应该是一个成功的。

现在框架搭好了,只需要在资源视图中的相应的Dialog上作相应的设计了;

阅读更多
文章标签: dialog mfc border 框架
个人分类: VC
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭