版权声明:所有版权归作者她的吻让他,转载请标明出处. https://blog.csdn.net/qq_37059136/article/details/85258564
前言
MFC虽然说是个比较老的界面软件,但其实操作还是可以的,哈哈哈,MFC项目提供一个主界面,我们可以利用主界面做功能,但其实好多功能不可能体现在主界面上,这时候就需要属性页,属性页类似一本书,书的每一页都是一个可操作的窗口
正文
创建属性页比较简单
1先创建一个窗口
设置窗口的一些属性例如id,Caption,这两个自行设置,当然也可以不变,Style属性在下拉列表中选择“Child”,Border属性在下拉列表中选择“Thin”。
这样一个属性页就创建完成
2创建属性页类
在创建的窗口上右击,选择添加类,;类名自行设置
属性页类都应继承于CPropertyPage类,所以要修改下面“Base class”的选项,在下拉列表中选择“CPropertyPage”。
至此关于一个属性页的创建前提都已具备,下面开始配置该属性页
首先属性页有"上一页","下一页",
给属性页类添加OnSetActive()函数
BOOL CDlog1::OnSetActive()
{
// TODO: 在此添加专用代码和/或调用基类
// 获得父窗口,即属性表CPropertySheet类
CPropertySheet* psheet = (CPropertySheet*) GetParent();
// 设置属性表只有“下一步”按钮
psheet->SetWizardButtons(PSWIZB_BACK|PSWIZB_NEXT);
//psheet->SetWizardButtons(PSWIZB_BACK);
//参数IDCANCEL、ID_WIZBACK、ID_WIZNEXT、ID_WIZFINISH分别对应上面的四个按钮,想要更改哪个按钮名修改第二、三个参数即可
::SetDlgItemTextW((HWND)*psheet,ID_WIZNEXT,_T("下一页"));
::SetDlgItemTextW((HWND)*psheet,ID_WIZBACK,_T("上一页"));
return CPropertyPage::OnSetActive();
}
这里面有很多东西可以设置,有需求可以自行百度
假使你需要给属性页设置背景啥的,需要添加OnPaint()和OnInitDialog()函数
3创建属性表类
上面说了属性页就像是书的书页,但还需要一个容器将这些书页装在一起,就是属性表
选择MFC类
类名自己定义,基类选择图中的即可
这样我们就有了属性表
这是我属性表.h里面的一些配置
包含你的属性页头文件,并添加该属性页作为私有变量
在相应的CPP中添加属性页
4实例化属性表
CDlogall3 sheet(_T(""));
// 设置属性对话框为向导对话框
sheet.SetWizardMode();
// 打开模态向导对话框
sheet.DoModal();
创建你属性表对象,然后进行实例化