- 基于对话框的MFC程序, 在主对话框中添加TabCtrl控件,CTabCtrl 类型的变量m_tabctrl;
- 插入3对话框,并设置属性style=Child,Border=None,创建三个对话框类CDialog1,CDialog2,CDialog3;
- 在主对话框中创建三个对话框类的全局对象 m_dg1,m_dg2,m_dg3;
- 在主对话框的初始化函数OnInitDialog中初始化;
- 在主对话框中添加TabCtrl控件的TCH_SELCHANGE消息;
-  BOOL CTabUIDlg::OnInitDialog() 
 {
 CDialogEx::OnInitDialog();// 设置此对话框的图标。 当应用程序主窗口不是对话框时,框架将自动 
 // 执行此操作
 SetIcon(m_hIcon, TRUE); // 设置大图标
 SetIcon(m_hIcon, FALSE); // 设置小图标// TODO: 在此添加额外的初始化代码 
 
 //设置标签头信息
 m_tabCtrl.InsertItem(0, _T("加载图片"));
 m_tabCtrl.InsertItem(1, _T("直方图统计"));
 m_tabCtrl.InsertItem(2, _T("图像编码"));//在view类中,Create 是虚函数由框架调用,是用来“生成一个窗口的子窗口”。 
 m_dg1.Create(IDD_DIALOG1, &m_tabCtrl);
 m_dg2.Create(IDD_DIALOG2, &m_tabCtrl);
 m_dg3.Create(IDD_DIALOG3, &m_tabCtrl);//正确放置对话框 
 CRect si;
 m_tabCtrl.GetClientRect(&si);
 CRect it;
 m_tabCtrl.GetItemRect(0, it);
 si.top += it.top+20;
 si.left += 5;
 si.bottom -=5;
 si.right -=5;
 m_dg1.MoveWindow(&si);
 m_dg2.MoveWindow(&si);
 m_dg3.MoveWindow(&si);//设置第一个显示,即选中的标签,对话框 
 m_dg1.ShowWindow(SW_SHOW);
 m_tabCtrl.SetCurFocus(0);
 return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
 }
-  void CTabUIDlg::OnSelchangeTab(NMHDR *pNMHDR, LRESULT *pResult) 
 {
 // TODO: 在此添加控件通知处理程序代码
 switch (m_tabCtrl.GetCurSel())
 {
 case 0:
 m_dg1.ShowWindow(SW_SHOW);
 m_dg2.ShowWindow(SW_HIDE);
 m_dg3.ShowWindow(SW_HIDE);
 m_dg1.SetFocus();
 break;
 case 1:
 m_dg2.ShowWindow(SW_SHOW);
 m_dg1.ShowWindow(SW_HIDE);
 m_dg3.ShowWindow(SW_HIDE);
 m_dg2.SetFocus();
 break;
 case 2:
 m_dg3.ShowWindow(SW_SHOW);
 m_dg1.ShowWindow(SW_HIDE);
 m_dg2.ShowWindow(SW_HIDE);
 m_dg3.SetFocus();
 break;
 default:
 break;
 }
 *pResult = 0;
 }