情况是这样的:我有个属性页类,继承自CPropertySheet ,在这个属性页中有两个标签页都继承自 CProPertyPage,在标签页中各自有一个结构体指针来管理各自的数据。我想问的是:对于整个属性页来说,我是该在属性页类中用两个指针来保存这两个标签页中的数据呢,还是用两个相应的结构体。MFC属性页CPropertySheet标签页CPropertyPage

解决方案 »

  1.   

    CPropertyPage::OnApplyvirtual BOOL OnApply();返回值:
    如果改变被接受则返回非零值;否则返回0。说明:
    当用户选择OK或Apply Now按钮后,框架调用此函数。当框架调用此函数时,对属性表中的所有属性页做的改变都被接受了,属性表保持焦点,OnApply返回TRUE(值1)。在框架可以调用OnApply之前,你必须已经调用了SetModified并将它的参数设置为TRUE。这将会使得在用户一进行有关属性页的改变时就激活Apply Now按钮。
    重载这个函数来指定当用户单击Apply Now按钮时,你的程序会进行什么动作。在重载时,函数应该返回TRUE来表示接受改变,返回FALSE来表示禁止改变。
    OnApply的缺省实现调用OnOK。
    如果要获取更多有关当用户在一个属性表中按下Apply Now或OK按钮时发送的通知消息的信息,请参见Win32文档中的PSN_APPLY。CPropertyPage::OnOKvirtual void OnOK();说明:
    当用户选择了OK或Apply Now按钮时,在框架调用了OnKillActive之后,框架立即调用此函数。重载这个成员函数来实现当用户解散整个属性表时,执行对当前活动页指定的行为。
    此成员函数的缺省实现将该页标记为“清除(clear)”来反映数据已经在OnKillActive函数中更新了。