分页---------Tab Control控件的应用

Posted on 2010-09-28 04:55 傅先生 阅读(744) 评论(0)  编辑 收藏 引用 所属分类: VC控件
======================================
Tab Control控件的应用
前几天在网上搜了点资料,是关于Tab Control控件的应用,当时还做了一遍,今天再做有点生疏了,总是忘了点什么。于是总结在这儿,一是为以后使用提供方便,再是供大家参考。
首先,新建一个基于对话框的MFC应用程序,添加Tab Control控件,并为其添加变量CTabCtrl m_tab;
然后,新建两个对话框,均设置属性如下(这步很重要):Style--Child,Border--None;然后分别添加一个文本框。
分别为这两个对话框建立新类CPage1和CPage2。
该程序用了一个CDialog的指针数组来进行保存各个页面,数组的大小是Tab Control页面的个数,数组下标对应着每个页面的索引(这样方便快速存取)。 声明变量:CDialog *pDialog[2],并且添加一个int型变量用于保存当前活动的页面索引,int m_CurSelTab;
接着,在OnInitDialog函数中添加如下代码:
    //为Tab Control增加两个页面
    m_tab.InsertItem(0, _T("First"));
    m_tab.InsertItem(1, _T("Second"));
    //创建两个对话框
    m_page1.Create(IDD_DIALOG1, &m_tab);
    m_page2.Create(IDD_DIALOG2, &m_tab);
    //设定在Tab内显示的范围
    CRect rc;
    m_tab.GetClientRect(rc);
    rc.top += 20;
    rc.bottom -= 8;
    rc.left += 8;
    rc.right -= 8;
    m_page1.MoveWindow(&rc);
    m_page2.MoveWindow(&rc);
    //用数组把对话框对象指针保存起来
    pDialog[0] = &m_page1;
    pDialog[1] = &m_page2;
    //显示初始页面
    pDialog[0]->ShowWindow(SW_SHOW);
    pDialog[1]->ShowWindow(SW_HIDE);
    //保存当前选择
    m_CurSelTab = 0;
这样就可进行正常的显示了,如果响应页面切换这个事件,可以为Tab Control控件添加消息响应函数:OnSelchangeTab,并在该函数中添加如下代码:
   //得到页面的数据
    CString str;
    if(m_CurSelTab==0)
    {
        m_page1.UpdateData(TRUE);
         m_page1.GetDlgItem(IDC_EDIT_PAGE1)->GetWindowText(str);
     }
    if(m_CurSelTab==1)
    {
        m_page2.UpdateData(TRUE);
        m_page2.GetDlgItem(IDC_EDIT_PAGE2)->GetWindowText(str);
    }
     MessageBox(str);
    //首先我们先把当前的页面隐藏起来,然后得到新的页面索引,最后就把相关页面显示出来即可。这比一个个去枚举简单多了。
    pDialog[m_CurSelTab]->ShowWindow(SW_HIDE);
    m_CurSelTab = m_tab.GetCurSel();
    pDialog[m_CurSelTab]->ShowWindow(SW_SHOW);
经过这几步处理,一个简单的Tab Contrl控件应用程序就完成了。
=====================================
文章出处:飞诺网(www.firnow.com):http://dev.firnow.com/course/3_program/vc/vc_js/20100710/394991.html

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


posts - 54, comments - 5, trackbacks - 0, articles - 2

Copyright © 傅先生