MFC多标签页对话框
原文链接(有修改):http://blog.sina.com.cn/s/blog_6a1cdb3f0101llcw.html
1.新建一个MFC工程
取名PageSheet,选择Dialog based,然后Finish。
2.在对话框资源中插入两个对话框IDD_DIALOG1、IDD_DIALOG2,作为两个子页。
3.为这两个对话框增加两个类,分别为CPage1和CPage2,其基类选择CPropertyPage。
4.增加一个属性页类CMySheet, 其基类选择CPropertySheet。
5.在类CMySheet中增加两个成员变量m_page1,类型为CPage1,m_page2,类型为CPage2。
如:
public:
CPage1 m_page1;
CPage2 m_page2;
6.在类CMySheet的构造函数中添加如下两句,增加两个页。
如:
CMySheet::CMySheet()
{
AddPage(&m_page1);
AddPage(&m_page2);
}
ps:CMySheet类原先的两个带参构造函数,可以删除,改成以上所示无参构造函数。
7.在类CPageSheetApp的初始化函数InitInstance()中,将原来声明的对象去掉。改为属性页类对象声明。
如:
//CPageSheetDlg dlg;
CMySheet dlg;
8.添加头文件。
①“PageSheet.cpp”文件中添加头文件“MySheet.h”
②“MySheet.h”中添加头文件“CPage1.h”和“CPage2.h”
9.为属性页类添加初始化函数。
如:
BOOL CMySheet::OnInitDialog()
{
//属性页对话框初始化
BOOL bResult =CPropertySheet::OnInitDialog(); //设置窗口标题
SetWindowText("Page Sheet"); //去除多余的控件(确定、取消、应用、帮助)
CWnd *pWnd = GetDlgItem(IDOK);
pWnd->ShowWindow(SW_HIDE);
pWnd = GetDlgItem(ID_APPLY_NOW);
pWnd->ShowWindow(SW_HIDE);
pWnd = GetDlgItem(IDHELP);
pWnd->ShowWindow(SW_HIDE);
pWnd = GetDlgItem(IDCANCEL);
pWnd->ShowWindow(SW_HIDE);
RECT rc; //调整属性页对话框的大小
GetWindowRect (&rc);
MoveWindow(rc.left,rc.top,rc.right-rc.left,rc.bottom-rc.top-30); //调整窗口 return bResult;
}
10.可以将多余的对话框、文件删除。
对话框:程序初始对话框IDD_PAGESHEET_DIALOG
文件:CPageSheetDlg.h ,CPageSheetDlg.cpp
MFC多标签页对话框的更多相关文章
- MFC学习 标签页与属性页及各常用控件使用
参考 http://blog.csdn.net/anye3000/article/details/6700023 CTabCtrl: BOOL CTabTestDlg::OnInitDialog() ...
- MFC编程入门之十三(对话框:属性页对话框及相关类的介绍)
前面讲了模态对话框和非模态对话框,本节来将一种特殊的对话框--属性页对话框. 属性页对话框的分类 属性页对话框想必大家并不陌生,XP系统中桌面右键点属性,弹出的就是属性页对话框,它通过标签切换各个页面 ...
- MFC属性页对话框
属性页对话框 分类 分页和引导 类 CPropertyPage-父亲CDialog类别,所谓的属性页或网页对话框. CPropertySheet-父类是CWnd,称为属性表单. 一个完整的属性页对话框 ...
- VS2010/MFC编程入门之十三(对话框:属性页对话框及相关类的介绍)
前面讲了模态对话框和非模态对话框,本节开始鸡啄米讲一种特殊的对话框--属性页对话框.另外,本套教程所讲大部分对VC++各个版本均可适用或者稍作修改即可,但考虑到终究还是基于VS2010版本的,所以将& ...
- MFC MDI 主框架和标签页数据互操作
==================================声明================================== 本文原创,转载在正文中显要的注明作者和出处,并保证文章的完 ...
- MFC编程入门之十五(对话框:一般属性页对话框的创建及显示)
属性页对话框包括向导对话框和一般属性页对话框两类,上一节讲了如何创建并显示向导对话框,本节将继续介绍一般属性页对话框的创建和显示. 实际上,一般属性页对话框的创建和显示过程和向导对话框是很类似的.将上 ...
- VS2010/MFC对话框:一般属性页对话框的创建及显示
一般属性页对话框的创建及显示 本节将介绍一般属性页对话框的创建和显示. 实际上,一般属性页对话框的创建和显示过程和向导对话框是很类似的.鸡啄米将上一节中的向导对话框进行少量修改,使其成为一般属性页对话 ...
- VS2010/MFC编程入门之十五(对话框:一般属性页对话框的创建及显示)
属性页对话框包括向导对话框和一般属性页对话框两类,上一节鸡啄米讲了如何创建并显示向导对话框,本节将继续介绍一般属性页对话框的创建和显示. 实际上,一般属性页对话框的创建和显示过程和向导对话框是很类似的 ...
- MFC 标签页Tab Control
自带的标签页不好用,因此借助了TabSheet文件TabSheet源码 1.在解决方案资源管理器——项目处鼠标右键——在文件资源管理器中打开文件夹(或者按下图,更方便),把TabSheet.h.Tab ...
随机推荐
- 利用perf排查sys高的问题
思路 perf top perf record -C 44,48,60,63 -g -o a.data perf report -i a.data --call-graph 查看调用链,可以确定,基本 ...
- [poj1325] Machine Schedule (二分图最小点覆盖)
传送门 Description As we all know, machine scheduling is a very classical problem in computer science a ...
- 天翼云 RDS数据库操作
1.RDS数据库创建好之后点击RDS实例管理找到已下信息 官方文档 -1:http://www.ctyun.cn/help/qslist/567 官方文档 -2:http://www.ctyun.cn ...
- Java开发编码规范
第一章 代码开发规范及其指南 一.1 目的 定义这个规范的目的是让项目中所有的文档都看起来像一个人写的,增加可读性,减少项目组中因为换人而带来的损失.(这些规范并不是一定要绝对遵守,但是一定要让程序有 ...
- ASP.NET--MVC--伪静态
原文地址 以前伪静态很流行主要是为了SEO优化排名,现在搜索引擎对静态网站和动态网站的权重差不多了,就没有必要再伪静态了,个人意见,仅供参考. 有些客户要求设置静态的,为了完成需求,而且更简单的做法就 ...
- springmvc 监听器getWriter() has already been called for this response问题
springmvc 监听器getWriter() has already been called for this response问题 在监听器中,如果return true,就不要使用 respo ...
- hdu5389 Zero Escape DP+滚动数组 多校联合第八场
Zero Escape Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) To ...
- HDU 1198 Farm Irrigation (并查集优化,构图)
本题和HDU畅通project类似.仅仅只是畅通project给出了数的连通关系, 而此题须要自己推断连通关系,即两个水管能否够连接到一起,也是本题的难点所在. 记录状态.不断combine(),注意 ...
- Effective JavaScript Item 31 优先使用Object.getPrototypeOf,而不是__proto__
本系列作为Effective JavaScript的读书笔记. 在ES5中引入了Object.getPrototypeOf作为获取对象原型对象的标准API.可是在非常多运行环境中.也提供了一个特殊的_ ...
- Hadoop-2.2.0中文文档——Apache Hadoop 下一代 MapReduce (YARN)
MapReduce在hadoop-0.23中已经经历了一次全然彻底地大修.就是如今我们叫的MapReduce 2.0 (MRv2) or YARN. MRv2的基本思想是把JobTracker分成两个 ...