属性页控件
属性页->选项卡->对话框
CTabCtrl
一、建立名为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("第二页"));
二、在资源视图中添加两个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
三、为了使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. BZOJ2982——combination
  2. JavaScrip之对象与继承
  3. 为什么一个类的全局变量默认以m开头?
  4. HTML5音乐播放器(最新升级改造加强版)
  5. 移动 Web 开发技巧
  6. vbs操作txt文本文件常用方法(函数)
  7. (转)c指针
  8. 对于requirejs AMD模块加载的理解
  9. Spring注解@Component、@Repository、@Service、@Controller,@Autowired、@Resource用法
  10. 过滤所有的HTML标签
  11. oracle模糊查询效率提高
  12. 判断是否联网_检测网络的类型为3G、2G、wap、wifi
  13. CI(-)框架结构
  14. HDOJ1728 BFS【STL__queue_的应用】
  15. 老男孩Python全栈开发(92天全)视频教程 自学笔记20
  16. 【PAT】A1002 A+B for Polynomials
  17. node20180927
  18. Django框架详细介绍---模板系统
  19. Unity Alpha融合参数(便查)
  20. SaaS产品成功学

热门文章

  1. HDU 5572 An Easy Physics Problem【计算几何】
  2. myeclipse 如何更改java jsp 等文件的编码方式
  3. Laravel的请求声明周期
  4. websocket实现数据库更新时前端页面实时刷新
  5. oracle选择最有效率的表名顺序
  6. oracle函数 SESSIONTIMEZONE
  7. Mysql统计信息处理及binlog解释
  8. [翻译]Python中yield的解释
  9. Node.js 安装第三方模块包(npm),通过 package.json配置信息安装项目依赖的模块
  10. 浏览器间CSS样式兼容问题