加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

vc 对话框使用Tab Control控件的多标签页

(2014-04-11 09:57:05)
标签:

tabcontrol控件

多标签

vc

对话框

杂谈

分类: 代码天地


VC 使用TAB_CONTROL控件的多标签页

一. 创建一个基于对话框的工程testTabCtrl


二. 插入多个对话框
  这里,插入2个对话框IDD_DIALOG1,IDD_DIALOG2,删除其上的两个按钮,并改变其静态文本为分别为: 第1对话框 和 第2对话框
  右击对话框 -> ClassWizard...,为其创建类,名称分别为: CDialog1,和 CDialog2
  右击对话框 -> Properties,在Styles标签页,选择 Style: Child, Border:None

三. 在主对话框头文件testTabCtrlDlg.h内声明两个对话框变量
 
  1.在开始处,加入两条语句:

#include "Dialog1.h"
#include "Dialog2.h"

  2.在类class CTestTabCtrlDlg : public CDialog 内,声明两个对话框变量:

 CDialog1 m_Dlg1;
 CDialog2 m_Dlg2;


四. 在主对话框上,拖入Tab Control控件,并为其创建变量和消息
  1. 从控件工具条上拖一个Tab Control到主对话框IDD_TESTTABCTRL_DIALOG上,并拉伸到合适位置和大小。
  2. 右击 IDC_TAB1控件 --> ClassWizard... ,
  2.1 在Member Variables标签页,为IDC_TAB1增加变量 m_tabCtrl
  2.2 在Message Maps标签页,为IDC_TAB1增加消息TCN_SELCHANGE
  3. 标签点击选择函数和对话框初始化函数如下:

void CTestTabCtrlDlg::OnSelchangeTab1(NMHDR* pNMHDR, LRESULT* pResult)
{
 // TODO: Add your control notification handler code here
 CRect rc;
 m_tabCtrl.GetClientRect(&rc);

 switch(m_tabCtrl.GetCurSel())
 {
 case 0://激活第1对话框,隐含第2对话框
  m_Dlg1.ShowWindow(SW_SHOW);
  m_Dlg2.ShowWindow(SW_HIDE);
  m_Dlg1.SetFocus();
  break;
 case 1://激活第2对话框,隐含第1对话框
  m_Dlg1.ShowWindow(SW_HIDE);
  m_Dlg2.ShowWindow(SW_SHOW);
  m_Dlg2.SetFocus();
  break;
 default:
  break;
 }
 
 *pResult = 0;
}


BOOL CTestTabCtrlDlg::OnInitDialog()
{
 CDialog::OnInitDialog();

 //"About..." menu item to system menu.
 
 m_tabCtrl.InsertItem(0,_T("第 1 标签页"));//插入标签页1
 m_tabCtrl.InsertItem(1,_T("第 2 标签页"));//插入标签页2

 m_Dlg1.Create(IDD_DIALOG1,&m_tabCtrl);//m_Dlg1成员变量创建对话框IDD_DIALOG1,关联m_tabCtrl控件变量
 m_Dlg2.Create(IDD_DIALOG2,&m_tabCtrl);

 CRect rc;
 m_tabCtrl.GetClientRect(&rc);//得到IDC_TAB1控件的大小
 rc.top += 20;rc.bottom -= 4;//适当缩减大小,以便预留四周的边框
 rc.left += 4;rc.right -= 4;

 m_Dlg1.MoveWindow(&rc);//调整将对话框大小,以便合适嵌入到IDC_TAB1控件内
 m_Dlg2.MoveWindow(&rc);

 m_Dlg1.ShowWindow(SW_SHOW);//显示第一对话框
 m_tabCtrl.SetCurFocus(0);//第一对话框获得焦点
 
 return TRUE;  // return TRUE  unless you set the focus to a control
}

五. 运行测试
  点击第1标签页,将显示第1对话框;

    点击第2标签页,将显示第2对话框。

vc <wbr>对话框使用Tab <wbr>Control控件的多标签页

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有