初始化选项卡
给tab控件绑定变量m_tab,通过InsertItem添加tab的标题,常用参数1表示tab下标序号,参数2为标题笔墨,参数3本样例未给出,为图标列表的序号,须要添加图标可以启用参数3。
m_tab.InsertItem(0, _T("Page1"));m_tab.InsertItem(1, _T("Page2"));m_tab.InsertItem(2, _T("Page3"));m_tab.InsertItem(4, _T("Page4"));m_tab.InsertItem(4, _T("Page5"));m_tab.InsertItem(5, _T("Page6"));
添加对话框资源
仅仅初始化如上6个tab标签,切换时界面并没有发生变革,还须要创建对应6个界面,即6个对话框。
对话框是一种资源,在资源视图-对话框-鼠标右键单击-插入,本样例只给出两个对话框,别的操作都是相同的。
每个对话框放置一个按钮或者其他类型控件作为区分:
此处把稳属性设置,样式:Child,边框:None:
然后再给对应对话框添加类,会自动天生对应.h头文件和.cpp文件:
关联子对话框和m_tab:
m_dlg_page1.Create(IDD_DLG_PAGE1, &m_tab);m_dlg_page2.Create(IDD_DLG_PAGE2, &m_tab);
子控件区域比m_tab要小一些,先获取m_tab位置,在其根本上缩小,然后放置子控件。默认选择下标为0的tab和第一个对话框:
CRect rect;m_tab.GetClientRect(rect);rect.top += 30;rect.left += 8;rect.right -= 8;rect.bottom -= 8;m_dlg_page1.MoveWindow(rect);m_dlg_page2.MoveWindow(rect);m_tab.SetCurSel(0);m_dlg_page1.ShowWindow(SW_SHOW);
添加切换tab事宜
void CDemoDlg::OnTcnSelchangeTab(NMHDR pNMHDR, LRESULT pResult){switch (m_tab.GetCurSel()){case 0:m_dlg_page1.ShowWindow(SW_SHOW);m_dlg_page2.ShowWindow(SW_HIDE);break;case 1:m_dlg_page1.ShowWindow(SW_HIDE);m_dlg_page2.ShowWindow(SW_SHOW);break;default:break;}pResult = 0;}