要求能在操作第一页面得时候,其他的页能够实现刷新数据,现在在调初sheet后,只有第一页能够访问,其他页得指针为空,求解决~~
//类实例
CProp2_Point m_prop2_point;
CProp3 m_prop3;
CProp1 m_prop1;CPropSheet::CPropSheet(int pdatatype,UINT nIDCaption, CWnd* pParentWnd, UINT iSelectPage)
:CPropertySheet(nIDCaption, pParentWnd, iSelectPage)
{
this->AddPage(&m_prop1);
this->AddPage(&m_prop2_line);
this->AddPage(&m_prop3);}CPropSheet::CPropSheet(int pdatatype,LPCTSTR pszCaption, CWnd* pParentWnd, UINT iSelectPage)
:CPropertySheet(pszCaption, pParentWnd, iSelectPage)
{
this->AddPage(&m_prop1);
this->AddPage(&m_prop2_point);
this->AddPage(&m_prop3);
}this指针中,只有m_prop1没问题,两外得两个对象为空,怎么解决,望给初代码 谢谢~~~~~

解决方案 »

  1.   

    m_prop2_point,m_prop3 创建的时候的是否正确,检查它们创建的时候的指针是否不会空
      

  2.   

    propertySheet的page只有在active之后才会初始化...在OnInitDialog中调用
    CPropertySheet::SetActivePage 把每个page都active一遍
      

  3.   

    其他页面数据的刷新,你其实可以等用户点击对应页面的时候在OnSetActive中再刷新,因为用户也没看到其他页面,所以没必要刷新数据,只有真正的界面切换过去了,再刷新,这样处理比较适合
      

  4.   

    以上在this中都为空,请问怎么正确创建,谢谢
      

  5.   

    更换一下编程思想,将所有的数据都保存到一个结构S中,然后,pageX初始化时候,根据S中的数据来初始化界面,就可以达到更新后面的Page了。
      

  6.   

    换一种编程思想,将所有的状态数据保存在一个结构S中,当PageX初始化时候,根据结构S中的数据来初始化,这样就达到修改Page1的数据,Page1之后的页面数据刷新问题。