VS2010/MFC之加法计算器(四)添加属性页

2025-05-09 15:24:07

属性页对话框想必大家并不陌生,windows系统中桌面右键点属性,弹出的就是属性页对话框,它通过标签切换各个页面。另外,我们在创建MFC工程时使用的向导对话框也属于属性页对话框,它通过点击“下一步”等按钮来切换页面。

创建和配置对话框

1、创建属性页对话框资源在“Resource View”的Dialog”节点上点右键,然后在右键菜单中选择“Insert Dialog”创建三个对话框模板,分别对应被加数,加数,和。删除对话框里面的“OK”和“Cancel”按钮。

VS2010/MFC之加法计算器(四)添加属性页

2、被加数,加数,和框的ID设置为IDD_SUMMAND_PAGE 、 IDD_ADDEND_PAGE 、IDD_ADD_PAGE,对应Caption为“被加数页”“加数”“计算页”。Style属性在下拉列表中都选择“Child”,Border属性在下拉列表中都选择“Thin”。

VS2010/MFC之加法计算器(四)添加属性页

3、在IDD_SUMMAND_PAGE对话框模板上点右键,在右键菜单中选择“Add Class”,弹出类向导对话框,在“Class name”编辑框中输入类名“CSummandPage”,与之前不同的是,因为属性页类都应继承于CPropertyPage类,所以要修改下面“Base class”的选项,在下拉列表中选择“CPropertyPage”。

VS2010/MFC之加法计算器(四)添加属性页
VS2010/MFC之加法计算器(四)添加属性页

4、在“Class View”中找到“CSummandPage”节点,然后VS2010右侧面板上的属性列表,属性列表的工具栏上有个tip信息为“Overrides”的按钮,按下它,找到“OnSetActive”,点其右侧空白列表项出现向下箭头,再“<Add>OnSetActive”

VS2010/MFC之加法计算器(四)添加属性页
VS2010/MFC之加法计算器(四)添加属性页

5、在OnSetActive函数体中添加如下代码实现添加“下一步”按钮的效果// 获得父窗口,即属性表CPropertySheet类CPropertySheet* psheet = (CPropertySheet*) GetParent();// 设置属性表只有“下一步”按钮psheet->SetWizardButtons(PSWIZB_NEXT);return CPropertyPage::OnSetActive();

VS2010/MFC之加法计算器(四)添加属性页

6、CAddendPage框的属性页不需要重芙囹买乐载OnSetActive函数。CAddPage需要重载OnSetActive函数设置“完成”按钮。重载后的OnSetActive代码如下:// 获得父窗口,即属性表CPropertySheet类CPropertySheet* psheet = (CPropertySheet*) GetParent();//设置属性表只有“完成”按钮psheet->SetFinishText(_T("完成"));return CPropertyPage::OnSetActive();

VS2010/MFC之加法计算器(四)添加属性页

创建属性表类

1、在Solution Explorer视图中的根节点“Addition”上点右键,在右键菜单中选择Add->Class,弹出“Add Class”对话框,然后在中间区域中选择“MFC Class”,点“Add”按钮,弹出另一个类向导对话框,设置Class name为CAddSheet,Base class选择“CPropertySheet”,点“Finish”

VS2010/MFC之加法计算器(四)添加属性页
VS2010/MFC之加法计算器(四)添加属性页
VS2010/MFC之加法计算器(四)添加属性页

2、在新生成的AddSheet.h中包含三个属性页类的头文件:#include "SummandPage.h"#include "AddendPage.h"#include "AddPage.h"

3、在AddSheet.h中添加private变量:CSummandPage m_summandPage;CAddendPage m_addendPage;CAddPage m_addPage;

VS2010/MFC之加法计算器(四)添加属性页

4、在AddSheet.cpp文件中修改CAddSheet的两个构造函数为:CAddSheet::CAddSheet(炽扃仄呦UINT nIDCaption, CWnd* pParentWnd, UINT iSelectPage):CPropertySheet(nIDCaption, pParentWnd, iSelectPage){// 添加三个属性页到属性表AddPage(&m_summandPage);AddPage(&m_addendPage);AddPage(&m_addPage);}

VS2010/MFC之加法计算器(四)添加属性页

5、CAddSheet::CAddSheet(LPCTSTR pszCaption, CWnd* pParentWnd, UINT iSelectPage)49:CPropertySheet(pszCaption, pParentWnd, iSelectPage){// 添加三个属性页到属性表AddPage(&m_summandPage);AddPage(&m_addendPage);AddPage(&m_addPage);}

VS2010/MFC之加法计算器(四)添加属性页

显示向导对话框

1、在加法计算器对话框上添加一个按钮,点击它就打开向导对话框。此按钮的ID设为IDC_INSTRUCT_BUTTON,Caption属性设为“使用说明”。

VS2010/MFC之加法计算器(四)添加属性页

2、双击进入,在AdditionDlg.cpp文件中包含CAddSheet的头文件:#include "AddSheet.h"

VS2010/MFC之加法计算器(四)添加属性页

3、修改OnBnClickedIn衡痕贤伎structButton函数如下:C++代码void CAdditionDlg::OnBnClickedI荏鱿胫协nstructButton(){// TODO: Add your control notification handler code here// 创建属性表对象CAddSheet sheet(_T(""));// 设置属性对话框为向导对话框sheet.SetWizardMode();// 打开模态向导对话框sheet.DoModal();}

VS2010/MFC之加法计算器(四)添加属性页

4、最后运行

VS2010/MFC之加法计算器(四)添加属性页
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢