标签页示例

来源:互联网 发布:程序员的数学pdf 编辑:程序博客网 时间:2024/06/06 08:53


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


主对话框中:

添加一个标签页控件: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();//四周向中央缩进3pxrect.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="";}





原创粉丝点击