CPropertySheet和CPropertyPage中数据交换时的两种处理手段

本文探讨了在MFC中CPropertySheet和CPropertyPage进行数据交换的两种方法。重点在于如何利用DDX机制在属性表及其包含的多个属性页之间交互数据,并解决了在OnOk函数中未创建属性页时可能出现的错误。解决方案包括检查属性页是否实际创建,避免对未创建页面的数据访问。
摘要由CSDN通过智能技术生成

        第一种方式MFC中有一篇专门的文章介绍了它,先把它列出来:

        在大多数对话框中,属性表(CPropertySheet)和应用程序之间的数据交互是属性表最重要的功能之一。这篇文章介绍了怎样实现这个任务。

        和属性表交互数据实际上是和属性表中的属性页(CPropertyPage)交互数据,和属性页交互数据的过程和和对话框交互数据的过程是一样的,因为一个CPropertyPage对象是一种特殊的CDialog对象。数据交互过程也使用了框架的DDX(Dialog Data Exchange)机制,这种机制实现了在对话框中的控件和对话框的成员变量中交互数据。

        和属性表交互数据与和普通的对话框交互数据有一个很大的不同点是属性表经常会含有多个属性页,因此你必须和属性表中的所有属性页交互数据。

       下面的例子显示了如何在一个CView对象和含有两个属性页的属性表中交互数据:

void CMyView::DoModalPropertySheet()
{
   CPropertySheet propsheet;
   CMyFirstPage pageFirst; // derived from CProperty
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值