CPropertySheet属性页怎么切换添加的Page

CPropertySheet属性页如何切换添加的Page
主界面如下:CPropertySheet属性页怎么切换添加的Page

通过CPropertySheet的AddPage()函数把CPropertyPage的对象添加到属性页中。(如上图)

我希望通过右击弹出菜单后点击转到进程(如下图:)
CPropertySheet属性页怎么切换添加的Page

后可以转到下图的界面,即实现在两个Page之间的切换
CPropertySheet属性页怎么切换添加的Page

不知道大家有没有做过类型的,我试过几个方法都没有成功。
------解决思路----------------------

CPropertySheet *pParent = (CPropertySheet *)GetParent();
pParent->SetActivePage(iPage);
------解决思路----------------------
引用:
Quote: 引用:

CPropertySheet::SetActivePage(int nPage) ?


但是 转到进程的函数是在一个CPropertyPage里面,
例如:
CPropSheet propSheet(L"任务管理器");
propSheet.SetActivePage(&propSheet.Prop_process);

其中:CPropSheet 为自定义的CProppertySheet的类
     Prop_process为自定义的CPropertyPage的类

还是无效,没有进行切换,应该是我不知道怎么用,你知道具体怎么用吗?


CPropertySheet::SetActivePage不是有两个重载函数吗?
CPropertySheet::SetActivePage(int nPage);
SetActivePage(CPropertyPage* pPage);
你用那个索引参数的就行了啊!

CPropSheet propSheet(L"任务管理器");
propSheet.SetActivePage(&propSheet.Prop_process);
------------------------------------------------------------------------------------
你的菜单command消息处理应该在CPropertySheet类中处理吧,你直接搞个栈CPropSheet对象来处理,这个CPropSheet对象是你的原来的那个CPropSheet吗?肯定不是了CPropertySheet属性页怎么切换添加的Page

有三种方法:
第一种是你的CPropertyPage在create的时候把原来的那个CPropSheet类对象指针作为父窗口传进去
CPropertyPage::Create(UINT nIDTemplate, CWnd* pParentWnd = NULL)
然后在菜单command消息处理中采用7楼的方法

第二种是在你的CPropertyPage类中保存CPropSheet 对象指针,CPropertyPage对象构造的时候射进去,然后在菜单command消息处理中直接通过这个指针SetActivePage

第三中是在你的CPropertyPage类中保存CPropSheet 对象的窗口句柄,CPropertyPage对象构造的时候射进去,然后在菜单command消息处理中通过这个句柄给CPropSheet发送自定义消息,CPropSheet收到这个消息的时候再SetActivePage