VC2008使用Tab控件添加属性页范例

    VC MFC缺乏竞争对手,凡是没有竞争的地方就会比较垃圾不人性化,世间所有事皆是市场,无市场无自由,期望权威领袖一统天下后安排得井井有条,小民坐享其成只是懒惰依赖思维,最终只能被MS这样的垄断者不待见。你看MFC需要手动添加细节的地方就太多了,真是麻烦,耽误时间。

 

一.建立项目

二.添加Tab控件、控件变量

1.添加Tab控件

 

  添加Tab Control资源

  VC会作如下修改

此时编译不会显示Tab容器

2.添加Tab控件变量

可在View视图窗口中,用Class Wizard添加一个Control变量(不必创建类,tab只是容器,对Tab页的控制代码放在主对话框即可)。

3.添加切换Tab页功能代码

在主对话框CPP文件中OnInitDialog添加即可

    m_tab.InsertItem(0, _T("0"));
    m_tab.InsertItem(1, _T("1"));
    m_tab.InsertItem(2, _T("2"));

4.编译结果

可以切换Tab标题

 

三、添加Page控件、类、控件变量

1.添加Page控件

 

2.添加Page类

VC生成类的两个文件

3.添加Page控件变量,绑定资源进行创建实例化

//创建属性页;
    m_Page0.Create(IDD_OLE_PROPPAGE_LARGE0,GetDlgItem(IDC_TAB1));
	m_Page1.Create(IDD_OLE_PROPPAGE_LARGE1,GetDlgItem(IDC_TAB1));
    m_Page2.Create(IDD_OLE_PROPPAGE_LARGE2,GetDlgItem(IDC_TAB1));
    
    //获取TAB的客户端矩形框,从而设置各属性页在TAB上的物理位置
    CRect rs;
    m_tab.GetClientRect(&rs);
    rs.top+=20;
    rs.bottom-=4;
    rs.left+=4;
    rs.right-=4;

    //设置属性页的大小和位置
    m_Page0.MoveWindow(&rs);
	m_Page1.MoveWindow(&rs);
    m_Page2.MoveWindow(&rs);

    //默认第一页显示
    m_Page0.ShowWindow(TRUE);
    m_tab.SetCurSel(0);

四、添加切换Tab功能:

1.添加事件处理函数

TabControl容器添加OnTcnSelchange消息事件

在该消息事件中执行各属性页的切换操作。

[1]用类向导添加

 

[2]或者属性中添加

2.代码

// TAB切换属性页功能
    switch(m_tab.GetCurSel())
    {
        case 0:
            m_Page0.ShowWindow(TRUE);
			m_Page1.ShowWindow(FALSE);
            m_Page2.ShowWindow(FALSE);
			break;
        case 1:
            m_Page0.ShowWindow(FALSE);
			m_Page1.ShowWindow(TRUE);
            m_Page2.ShowWindow(FALSE);
			break;
		case 2:
            m_Page0.ShowWindow(FALSE);
			m_Page1.ShowWindow(FALSE);
            m_Page2.ShowWindow(TRUE);
			break;
        default: ;
    }

五、编译结果

在属性页上加不同控件,方便查看效果。

附:TabDlg添加OnInitDialog代码

如果添加了TabDlg类,并要放在它的OnInitDialog函数中,可手动重载才有此函数。

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值