CPropertyPage::OnWizardNext()怎样跳到任意的页?

microyzy 2003-12-10 09:33:33
我看msdn上说是return目标窗口的id即可,这个id指的是资源的ID吗?我return怎么不行啊,效果跟return -1一样

LRESULT CDialog1::OnWizardNext()
{
// TODO: Add your specialized code here and/or call the base class
CGuideSheet * pDlg = (CGuideSheet*)GetParent();
int iID=GetCheckedRadioButton(IDC_RADIO1,IDC_RADIO3);
switch(iID) {
case IDC_RADIO1:
return (LRESULT)IDD_DIALOG3;
break;
case IDC_RADIO2:
return (LRESULT)IDD_DIALOG3;
break;
case IDC_RADIO3:
pDlg->EndDialog(9);
break;
default:
AfxMessageBox("非法的参数!");
return -1;
break;
}

return CPropertyPage::OnWizardNext();
}
...全文
198 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
microyzy 2003-12-10
  • 打赏
  • 举报
回复
我怀疑是因为这些跳转代码在OnWizardNext()中的原因
即使我设置了BOOL b1=pDlg->SetActivePage(2);,因为这个函数要返回值,如果返回0,则会自动进入下一页,如果返回-1,就会不动?
microyzy 2003-12-10
  • 打赏
  • 举报
回复
这是我的部分代码
调用代码:
AFX_MANAGE_STATE(AfxGetStaticModuleState());
CGuideSheet dlg("",NULL,0);
dlg.m_psh.dwFlags &= ~(PSH_HASHELP);
dlg.m_bWriteLog =bLogInReg;
dlg.SetWizardMode();
int retCode=dlg.DoModal();
构造函数:
CGuideSheet::CGuideSheet(LPCTSTR pszCaption, CWnd* pParentWnd, UINT iSelectPage)
:CPropertySheet(pszCaption, pParentWnd, iSelectPage)
{
m_bWriteLog=TRUE;
AddPage(&m_Dialog1);
AddPage(&m_Dialog2);
AddPage(&m_Dialog3);
AddPage(&m_Dialog4);
}
CGuideSheet的定义:
class CGuideSheet : public CPropertySheet
{
DECLARE_DYNAMIC(CGuideSheet)

// Construction
public:
CGuideSheet(UINT nIDCaption, CWnd* pParentWnd = NULL, UINT iSelectPage = 0);
CGuideSheet(LPCTSTR pszCaption, CWnd* pParentWnd = NULL, UINT iSelectPage = 0);

// Attributes
public:

// Operations
public:
CDialog1 m_Dialog1;//class CDialog1 : public CPropertyPage
CDialog2 m_Dialog2;
CDialog1 m_Dialog3;
CDialog2 m_Dialog4;
BOOL m_bWriteLog;

// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CGuideSheet)
//}}AFX_VIRTUAL

// Implementation
public:
virtual ~CGuideSheet();

// Generated message map functions
protected:
//{{AFX_MSG(CGuideSheet)
// NOTE - the ClassWizard will add and remove member functions here.
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
microyzy 2003-12-10
  • 打赏
  • 举报
回复
SetActivePage我也试了,页面没有变化,也没有错误,不知道是不是我的代码哪有问题

to feiniaoliang(飞鸟良)
应该不是index,因为第一页的index是0,而return 0的话是跳到下一页,而不是跳到第一页

COOL099 2003-12-10
  • 打赏
  • 举报
回复
CPropertySheet::SetActivePage
feiniaoliang 2003-12-10
  • 打赏
  • 举报
回复
显然指的是页面在Sheet中的Index,你可以通过pDlg->GetPageIndex();来取得相应的index!!

good luck~~~

16,550

社区成员

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

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

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