重金求PRroperSheet初始化,如何使全部页面激活~急~3Q

csuftliang 2009-06-22 03:23:00
要求能在操作第一页面得时候,其他的页能够实现刷新数据,现在在调初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没问题,两外得两个对象为空,怎么解决,望给初代码 谢谢~~~~~
...全文
55 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
csuftliang 2009-06-22
  • 打赏
  • 举报
回复
没有能给出正解得么~~~~~~~~~~~~~~~~
Tolirry 2009-06-22
  • 打赏
  • 举报
回复
换一种编程思想,将所有的状态数据保存在一个结构S中,当PageX初始化时候,根据结构S中的数据来初始化,这样就达到修改Page1的数据,Page1之后的页面数据刷新问题。
Tolirry 2009-06-22
  • 打赏
  • 举报
回复
更换一下编程思想,将所有的数据都保存到一个结构S中,然后,pageX初始化时候,根据S中的数据来初始化界面,就可以达到更新后面的Page了。
峰白 2009-06-22
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 skyxie 的回复:]
propertySheet的page只有在active之后才会初始化...



OnInitDialog中调用
CPropertySheet::SetActivePage 把每个page都active一遍
[/Quote]

支持
jyh_baoding 2009-06-22
  • 打赏
  • 举报
回复
帮顶一个
csuftliang 2009-06-22
  • 打赏
  • 举报
回复

oh mygod~
skyxie 2009-06-22
  • 打赏
  • 举报
回复
......飘过......
csuftliang 2009-06-22
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 oyljerry 的回复:]
引用 4 楼 csuftliang 的回复:
引用 1 楼 oyljerry 的回复:
m_prop2_point,m_prop3 创建的时候的是否正确,检查它们创建的时候的指针是否不会空

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


正确的处理流程见我3楼..
[/Quote]
我知道那样是一种方法,但我必须要统一刷新,一开始就需要统一加载,要必须这样该怎么弄~~谢谢
oyljerry 2009-06-22
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 csuftliang 的回复:]
引用 1 楼 oyljerry 的回复:
m_prop2_point,m_prop3 创建的时候的是否正确,检查它们创建的时候的指针是否不会空

以上在this中都为空,请问怎么正确创建,谢谢
[/Quote]
正确的处理流程见我3楼..
csuftliang 2009-06-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 oyljerry 的回复:]
m_prop2_point,m_prop3 创建的时候的是否正确,检查它们创建的时候的指针是否不会空
[/Quote]
以上在this中都为空,请问怎么正确创建,谢谢
oyljerry 2009-06-22
  • 打赏
  • 举报
回复
[Quote=引用楼主 csuftliang 的帖子:]
要求能在操作第一页面得时候,其他的页能够实现刷新数据,现在在调初sheet后,只有第一页能够访问,其他页得指针为空,求解决~~

C/C++ code//类实例CProp2_Point m_prop2_point;
CProp3 m_prop3;
CProp1 m_prop1;

CPropSheet::CPropSheet(intpdatatype,UINT nIDCaption, CWnd*pParentWnd, UINT iSelectPage)
:CPropertySheet(nIDCaption, pParentWnd, iSelectPage)
{this->AddPage(&m_prop1);this->AddPage(&m_p…
[/Quote]
其他页面数据的刷新,你其实可以等用户点击对应页面的时候在OnSetActive中再刷新,因为用户也没看到其他页面,所以没必要刷新数据,只有真正的界面切换过去了,再刷新,这样处理比较适合
skyxie 2009-06-22
  • 打赏
  • 举报
回复
propertySheet的page只有在active之后才会初始化...



OnInitDialog中调用
CPropertySheet::SetActivePage 把每个page都active一遍
oyljerry 2009-06-22
  • 打赏
  • 举报
回复
m_prop2_point,m_prop3 创建的时候的是否正确,检查它们创建的时候的指针是否不会空

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧