对话框属性页(VC_MFC)

属性页编写总体思路

大体思想:

设置对话框属性页属性:

在编写时要注意把对话框资源以下属性设置为对应值

属性名       值  
System Menu    False
Style         Child
Title Bar        False
Border        None

代码样例(这里我一几个按钮控件来演示):

添加两个对话框资源并为对话框资源定义相关属性,资源 ID 为IDD_PAGE1,IDD_PAGE2,资源视图如下所示:

为主对话框添加相关成员变量(属性页关联对象,CDialog 数组指针,当前显示标签页的索引)代码如下:

View Code

在主对话框的 OnInitDialog 函数中初始化属性页相关操作,添加的具体代码如下: 

View Code

然后为对话框添加两个按钮并通过这个两个按钮的事件响应函数来实现属性页的切换,具体代码如下:

View Code

运行结果:

 


CPropertySheet 编程

对话框属性页资源

普通对话框资源和属性页资源对话框的区别:

选项         普通对话框     属性页对话框
Style          Popup       Child
Border         Dialog     Thin
System menu     选中      未选中

可以把普通对话框按照上面修改便可以称为属性页对话框

 创建对话框属性页资源

编写CPropertySheet流程图:

代码样例:

属性页模式

创建两个属性页资源 ID 为 IDD_PAGE1 与 IDD_PAGE2,并关联两个 CPropertyPage 派生类,类分别为 CPage1,CPage2.资源视图如下:

CPage1 与 CPage2 源码:

View Code

在工程中添加一个派生于 CPropertySheet 类,这里我不它命名为 CMyProSh,然后在 CMyProSh 中添加 CPage1,CPage2 对象作为其成员变量,并在构造函数中用 AddPage 函数把 CPage1,CPage2 对象添加到属性表单中去.CMyProSh 程序源码如下:

  View Code

在主对话框中添加一个按钮然后为按钮添加事件响应函数,在函数中添加如下代码:

//创建表单类对象
CMyProSh pro(L"表单样例");
//显示模态表单对话框
pro.DoModal();

运行结果:

向导模式:

相关函数:

  • CPropertySheet::SetWizardButtons
  • CPropertySheet::SetWizardMode
  • CPropertyPage::OnWizardBack
  • CPropertyPage::OnWizardFinish
  • CPropertyPage::OnWizardNext

代码样例:

在创建模态对话框前的步骤与属性页模式一致.但在调用 DoModal 函数创建模态对话框前需要先调用 SetWizardMode 成员函数.代码如下:

View Code

运行结果:

 


Tab Control 控件

说明:

Tab Control 的运行效果有点像 Property Sheet,但两者还是有一些区别.我的理解就是Property Sheet主要用在对话框中,对数据进行进行分类管理.而 Tab Control 使用范围更广一些,既可以用在对话框,也可以用在视图中,除了可以管理配置数据外,还可以对软件的组织进行规划,比如可以通过它来切换不同的视图等等,当然这不是没有代价的,Tab Control 的编程就比 Property Sheet 的复杂很多.但是不是每个 Tab Control 的标签页对应一个页面

对于客户区其实只有一个,工作原理其实就是有许多的子对话框在客户区上但是只有一个显示而其他的都没有显示通过按标签页后相应事件让现在显示的子对话框隐藏而对应于标签页索引的某个子对话框显示

还需注意把对话框资源的相关属性的设置

相关函数:

CTabCtrl 类成员函数

显示相关函数

CWnd 类成员函数

显示相关函数

编写流程图:

代码样例:

在对话框上建立一个 Tab Control 控件,然后为控件添加关联的控制变量,并为变量命名为 m_tab.资源对话如下图所示:

添加两个对话框资源并为对话框资源定义相关属性,资源 ID 为IDD_PAGE1,IDD_PAGE2,资源视图如下所示:

为主对话框添加相关成员变量(属性页关联对象,CDialog 数组指针,当前显示标签页的索引)代码如下:

View Code

在主对话框的 OnInitDialog 函数中初始化 Tab Control 控件,即在 OnInitDialog 函数中添加一下代码:

View Code

为 Tab Control 控件添加响应标签页选择改变事件( 即 TCN_SELCHANGE 事件),然后在事件响应函数中添加切换属性页操作,相关代码如下:

View Code

运行结果:

分类:  VC
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值