【MFC基础】23属性页Tab Control

属性页控件

1、建立名为tabCtrl的mfc工程,添加Tab Control控件,设置属性ID为IDC_TAB,并添加变量m_tab

在tabCtrlDlg.cpp文件函数BOOL CtabCtrlDlg::OnInitDialog()中添加
// TODO: 在此添加额外的初始化代码

m_tab.InsertItem(0,_T("第一页"));
m_tab.InsertItem(1,_T("第二页"));

2、在资源视图中添加两个dialog,分别设置属性ID为 IDD_PAGE1,IDD_PAGE2。因为dialog是嵌入到tab里边,所以设置style ->child,Border->None(IDD_PAGE1,IDD_PAGE2都要设置);

为属性ID为 IDD_PAGE1 的dialog添加类CPage1Dlg ,
属性ID为 IDD_PAGE2 的dialog添加类 CPage2Dlg
在tabCtrlDlg.h中添加两个变量

// 实现
protected:
HICON m_hIcon;
CPage1Dlg m_page1;
CPage2Dlg m_page2;

记得在tabCtrlDlg.h中添加头文件

#include "Page1Dlg.h"
#include "Page2Dlg.h"

为了显示添加的对话框需在CtabCtrlDlg::OnInitDialog()中继续添加

// TODO: 在此添加额外的初始化代码
m_tab.InsertItem(0,_T("第一页"));
m_tab.InsertItem(1,_T("第二页"));

m_page1.Create(MAKEINTRESOURCE(IDD_PAGE1),&m_tab);
m_page2.Create(MAKEINTRESOURCE(IDD_PAGE2),&m_tab);

CRect rc;
m_tab.GetClientRect(rc);
rc.top += 30;
rc.left += 8;
rc.right -= 8;
rc.bottom -= 8;
m_page1.MoveWindow(rc);
m_page2.MoveWindow(rc);

m_page1.ShowWindow(SW_SHOW); //显示对话框1

3、为了使tab页有切换效果需在主窗口IDD_TABCTRL_DIALOG中添加事件处理函数如图步骤,并添加代码

在tabCtrlDlg.cpp文件中添加

void CtabCtrlDlg::OnTcnSelchangeTab(NMHDR *pNMHDR, LRESULT *pResult)
{
	// TODO: 在此添加控件通知处理程序代码
	switch(m_tab.GetCurSel())
	{
		case 0:
			m_page1.ShowWindow(SW_SHOW);
			m_page2.ShowWindow(SW_HIDE);
		break;
		case 1:
			m_page1.ShowWindow(SW_HIDE);
			m_page2.ShowWindow(SW_SHOW);
		break;
		default:
		break;
	}
	*pResult = 0;
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SuperJun12345

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值