标签页示例


本工程为对话框程序,主对话框有三个标签页并各有一个编辑框,点击“显示”按钮后显示用户在各属性页中输入的数据


主对话框中:

添加一个标签页控件:ID_TAB1,添加关联控件变量m_tab;

添加一个用于显示的按钮:ID_BTN_SHOW


资源视图中添加三个对话框,均设置属性:Border:None无边框,Style:Chile子窗口

ID_DIALOG1,添加类CPage1继承自CDialog,添加编辑框并建立数值型关联变量m-edit1

ID_DIALOG2,添加类CPage2继承自CDialog,添加编辑框并建立数值型关联变量m-edit2

ID_DIALOG3,添加类CPage3继承自CDialog,添加编辑框并建立数值型关联变量m-edit3


主对话框中添加变量:

CPage1 m_page1;
CPage2 m_page2;
CPage3 m_page3;
CString m_str;  //构造函数中初始化


在OnInitDialog()中初始化标签控件:

//标签控件添加3个页标头
	m_tab.InsertItem(0,"编号");
	m_tab.InsertItem(1,"姓名");
	m_tab.InsertItem(2,"电话");
	
	CRect rect,rc;
	//获取标签控件区域
	m_tab.GetWindowRect(rect);
	ScreenToClient(rect);
	//获取标签头的区域
	m_tab.GetItemRect(0,rc);
	//设置标签控件中央区域
	rect.top+=rc.Height();
	//四周向中央缩进3px
	rect.DeflateRect(3,3);

	//在标签控件中央区域创建三个子叶窗口
	m_page1.Create(IDD_DIALOG1,this);
	m_page1.MoveWindow(rect);
	m_page2.Create(IDD_DIALOG2,this);
	m_page2.MoveWindow(rect);
	m_page3.Create(IDD_DIALOG3,this);
	m_page3.MoveWindow(rect);

	//显示第一页
	m_page1.ShowWindow(SW_SHOW);
	m_page1.SetFocus();



添加标签控件的TCN_SELCHANGE消息反射函数OnSelchangeTab1

void CTabTestDlg::OnSelchangeTab1(NMHDR *pNMHDR, LRESULT *pResult)
{
	//获取选中标签页索引
	int nSel=m_tab.GetCurSel();

	//三个标签页窗口放入数组中
	CWnd *ps[]={&m_page1,&m_page2,&m_page3};
	int i=0;
	while(i<sizeof(ps)/sizeof(ps[0]))
	{
		//选中的标签页窗口显示,其它隐藏
		ps[i]->ShowWindow(i==nSel?SW_SHOW:SW_HIDE);
		i++;
	}
	ps[nSel]->SetFocus();

	*pResult = 0;
}

添加“显示”按钮的消息响应函数:

void CTabTestDlg::OnBnClickedBtnShow()
{
	//更新每个标签页的数据到关联变量中
	m_page1.UpdateData();
	m_page2.UpdateData();
	m_page3.UpdateData();
	
	//显示用户在每个标签页输入的数据
	m_str+="Num:"+m_page1.m_num+",Name:"+m_page2.m_name+",Phone:"+m_page3.m_phoen;
	MessageBox(m_str,"信息");

	m_str="";
}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值