TabControl的用法总结

TabControl的用法总结

因为程序需要,有好长的时间自己都在研究VCTabControl控件的用法,虽然逢人就问,见网就查,可是一直都没搞明白怎么回事.就在昨天,就在昨天,…突然醒悟,呵呵,因为这,晚上还加班到九点,突然觉得爱死VC,哈哈…..

我发现网上很多有关TabControl的用法文章写的都不透彻,可能是我比较笨的缘故吧,哈哈

下面我自己总结总结:

TabControl的使用原理:窗口上添加TabControl控件之后,通过建立一个关联的CTabCtrl类型的变量来操作控件,然后第一页面的具体实现细节,通过类来实现.

TabControl具体的使用方法:

第一步:

通过向导建立一个mfc的基于对话框应用程序项目.

然后在窗口中添加TabControl控件如图:

 

第二步,通过classwizardTabControl控件添加关联的CTabControl成员变量m_tabctrl,如图:

 

第三步:通添加两个Dialog对话框,注意这个添加的Dialog一定不要选择什么proppage等的类型,就添加普通的Dialog就行(这里我因为添加的是proppage类型的Dialog,所以在这里困了很久,当页面显示的时候总是页面里的控件得不到焦点).通过右击下图中的Dialog文件夹,然后选择insertDialog.

这里选择两个Dialog的目的是想做成一个具体两个页面的页表控件.如下图

 

第四步,能过classwizard为两个Dialog添加关联的类Cprop1,Cprop2..添加完成之后的类列表如下图:

第五步:在上图的 这个类中添加两个Cprop1Cprop2类型的成员变量,再添加一个CDialog* 类型的数组 pDialog[2] 如下图

CPageTest3DlgOnInitDialog()成员函数中添加如下代码:

       TCITEM   item;  

       item.mask   =   TCIF_TEXT;  

       item.pszText   =   "第一页";  

   

       m_tabctrl.InsertItem   (0,&item);  

       item.pszText   =   "第二页";  

       m_tabctrl.InsertItem   (1,&item); 

       m_prop1.Create(IDD_DIALOG1,&m_tabctrl);

       m_prop2.Create(IDD_DIALOG2,&m_tabctrl);

       CRect rc;

    m_tabctrl.GetClientRect(rc);

    rc.top += 40;

    rc.bottom -= 10;

    rc.left += 10;

    rc.right -= 10;

      

    m_prop1.MoveWindow(&rc);

    m_prop2.MoveWindow(&rc);

      

    //用数组把对话框对象指针保存起来

    pDialog[0] = &m_prop1;

    pDialog[1] = &m_prop2;

      

    //显示初始页面

    pDialog[0]->ShowWindow(SW_SHOW);

pDialog[1]->ShowWindow(SW_HIDE);

 

第六步:TabControl控件添加TCN_SELCHANGE消息映射函数OnSelchangeTab1(),然后在函数中加入下面的代码:

       int CurSel = m_tabctrl.GetCurSel();

    switch(CurSel)

    {

    case 0:

              m_prop1.ShowWindow(true);

              m_prop2.ShowWindow(false);

              //m_result.ShowWindow(false);

        break;

    case 1:

              m_prop1.ShowWindow(false);

              m_prop2.ShowWindow(true);

              //m_result.ShowWindow(false);

        break;

    case 2:

              m_prop1.ShowWindow(false);

              m_prop2.ShowWindow(false);

              //m_result.ShowWindow(true);

        break;

    default:

              ;

       }    

这段代码的作用是,当选择某页时,使得当前页显示,其它的页隐藏.

 

如果想设计自己风格的程序,就可以利用类Cprop1和对话框IDD_DIALOG1, Cprop2和对话框IDD_DIALOG2来实现了.

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值