MFC 分页对话框

刚刚了解到一点分页对话框,只形成了一个分页模型,记录下来。

1、首先在资源视图中插入两个对话框,作为两个分页Page1,Page2,如下图所示。

      

为两个对话框建立两个类,分别为CPage1,CPage2,但两个类的基类需要选择CPropertyPage

2、建立一个基于CPropertySheet的类CPages。

在Pages.h中添加两个分页对话框的头文件,并添加两个分页类的成员变量,如下所示:

#pragma once

#include "Page1.h"//加头文件
#include "Page2.h"

// CPages

class CPages : public CPropertySheet
{
	DECLARE_DYNAMIC(CPages)

public:
	CPages(UINT nIDCaption, CWnd* pParentWnd = NULL, UINT iSelectPage = 0);
	CPages(LPCTSTR pszCaption, CWnd* pParentWnd = NULL, UINT iSelectPage = 0);
	virtual ~CPages();
	CPage1 m_page1;//添加变量
	CPage2 m_page2;

protected:
	DECLARE_MESSAGE_MAP()
};


在CPages.cpp文件里添加增加分页的AddPage。

// Pages.cpp : 实现文件
//

#include "stdafx.h"
#include "TestGUI.h"
#include "Pages.h"


// CPages

IMPLEMENT_DYNAMIC(CPages, CPropertySheet)

CPages::CPages(UINT nIDCaption, CWnd* pParentWnd, UINT iSelectPage)
	:CPropertySheet(nIDCaption, pParentWnd, iSelectPage)
{
	AddPage(&m_page1);//添加分页
	AddPage(&m_page2);
}

CPages::CPages(LPCTSTR pszCaption, CWnd* pParentWnd, UINT iSelectPage)
	:CPropertySheet(pszCaption, pParentWnd, iSelectPage)
{
	AddPage(&m_page1);//添加分页
	AddPage(&m_page2);
}

CPages::~CPages()
{
}


BEGIN_MESSAGE_MAP(CPages, CPropertySheet)
END_MESSAGE_MAP()


// CPages 消息处理程序

3、在资源视图的菜单中添加一个“分页对话框”子菜单,我的菜单ID为ID_Pages_Menu。

      在该菜单添加事件处理程序,在view类列表添加。

在视图类.cpp添加以下代码:

//分页对话框
void CTestGUIView::OnPagesMenu()
{
	// TODO: 在此添加命令处理程序代码
	CPages pages(_T("1"));//里面的文本内容随自己喜欢添加
	pages.DoModal();
}

4、我在类向导中增加了两个对话框的OnApply()虚函数,就可以点击应用按钮实现事件,但我还没有开始完成应用的事件,只是粗略的写了对话框的分页。

最后的效果图如下:

      

  • 1
    点赞
  • 3
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论

打赏作者

lililili_1

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值