原文链接(有修改):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多标签页对话框的更多相关文章

  1. MFC学习 标签页与属性页及各常用控件使用

    参考 http://blog.csdn.net/anye3000/article/details/6700023 CTabCtrl: BOOL CTabTestDlg::OnInitDialog() ...

  2. MFC编程入门之十三(对话框:属性页对话框及相关类的介绍)

    前面讲了模态对话框和非模态对话框,本节来将一种特殊的对话框--属性页对话框. 属性页对话框的分类 属性页对话框想必大家并不陌生,XP系统中桌面右键点属性,弹出的就是属性页对话框,它通过标签切换各个页面 ...

  3. MFC属性页对话框

    属性页对话框 分类 分页和引导 类 CPropertyPage-父亲CDialog类别,所谓的属性页或网页对话框. CPropertySheet-父类是CWnd,称为属性表单. 一个完整的属性页对话框 ...

  4. VS2010/MFC编程入门之十三(对话框:属性页对话框及相关类的介绍)

    前面讲了模态对话框和非模态对话框,本节开始鸡啄米讲一种特殊的对话框--属性页对话框.另外,本套教程所讲大部分对VC++各个版本均可适用或者稍作修改即可,但考虑到终究还是基于VS2010版本的,所以将& ...

  5. MFC MDI 主框架和标签页数据互操作

    ==================================声明================================== 本文原创,转载在正文中显要的注明作者和出处,并保证文章的完 ...

  6. MFC编程入门之十五(对话框:一般属性页对话框的创建及显示)

    属性页对话框包括向导对话框和一般属性页对话框两类,上一节讲了如何创建并显示向导对话框,本节将继续介绍一般属性页对话框的创建和显示. 实际上,一般属性页对话框的创建和显示过程和向导对话框是很类似的.将上 ...

  7. VS2010/MFC对话框:一般属性页对话框的创建及显示

    一般属性页对话框的创建及显示 本节将介绍一般属性页对话框的创建和显示. 实际上,一般属性页对话框的创建和显示过程和向导对话框是很类似的.鸡啄米将上一节中的向导对话框进行少量修改,使其成为一般属性页对话 ...

  8. VS2010/MFC编程入门之十五(对话框:一般属性页对话框的创建及显示)

    属性页对话框包括向导对话框和一般属性页对话框两类,上一节鸡啄米讲了如何创建并显示向导对话框,本节将继续介绍一般属性页对话框的创建和显示. 实际上,一般属性页对话框的创建和显示过程和向导对话框是很类似的 ...

  9. MFC 标签页Tab Control

    自带的标签页不好用,因此借助了TabSheet文件TabSheet源码 1.在解决方案资源管理器——项目处鼠标右键——在文件资源管理器中打开文件夹(或者按下图,更方便),把TabSheet.h.Tab ...

随机推荐

  1. 【maven】成功生成jar包,提示找不到主类?

    问题描述:   使用maven构建zookeeper项目,完成一个简单的创建组的实例,代码调试完成,使用mvn clean install成功打包得到了jar包,但是在执行时发现使用java -cp ...

  2. top问题

    1. 从10万个数中找10个最大的数 对于这种题目,最普通的想法是先对这10万个数进行排序,然后再选取数组中前10个数,即为最后的答案,排序算法的时间复杂度不下于O(N lgN).最好的方法是建立一个 ...

  3. ArchLinux简单介绍

    一.Archlinux的由来 2002年由加拿大的Judd Vinet,Archlinux的创始人 怀着对Debian.Redhat的包管理器不满,于是创建了Archlinux!目前ArchLinux ...

  4. Hexo系列(三) 常用命令详解

    Hexo 框架可以帮助我们快速创建一个属于自己的博客网站,熟悉 Hexo 框架提供的命令有利于我们管理博客 1.hexo init hexo init 命令用于初始化本地文件夹为网站的根目录 $ he ...

  5. Problem 17

    Problem 17 If the numbers 1 to 5 are written out in words: one, two, three, four, five, then there a ...

  6. 【hihocoder 1473】小Ho的强迫症

    [题目链接]:http://hihocoder.com/problemset/problem/1473 [题意] [题解] 假定初始为在在0位置(相对它左边那条线); 则考虑; 多少步之后,人又能这到 ...

  7. HDU 1242

    简单题 #include <iostream> #include <cstdio> #include <queue> using namespace std; ; ...

  8. 贪吃蛇c++实现

    近期没事翻了一下曾经写的程序.真是不堪入目.曾经真是什么都不懂.只是有一个程序倒是挺有意思的,大二的时候写的一个贪吃蛇游戏.尽管程序非常难看,还有非常多漏洞.但也是这个程序让我真正開始喜欢上了编程.不 ...

  9. Linux下叹号!的用法

    在定义包含!的字符串变量时,出现了以下提示错误. 注意:在centos系统下错误,在Fedora系统可以正常运行. 修正方法有以下几种: (1)将整个字符串用单引号引起来. (2)在!后添加空格. ( ...

  10. linux下udev简介【转】

    本文转载自:http://blog.csdn.net/skyflying2012/article/details/9364555 一.关于Udev u即user space,dev是device,通过 ...