Visual c++ 如何更改属性页向导按钮的位置?

Visual c++ 如何更改属性页向导按钮的位置?,visual-c++,mfc,Visual C++,Mfc,我有一个属性表向导,它由三个按钮组成:后退,下一步,默认情况下在右下角取消。我们有没有可能将这些向导按钮移到表的左下角(精确到底部的工作表中心,详细地说,这些按钮应该向左移动到工作表中心)?简短的回答是肯定的。您需要派生自己的CPPropertySheet类并覆盖OnInitDialog()移动按钮。您需要使用IDID_WIZNEXT和ID_WIZBACK来获取指向实际按钮的指针。一旦有了指针,您就可以像使用CWnd::MoveWindow移动任何其他控件一样移动按钮。以下是一些示例代码(缺少错

我有一个属性表向导,它由三个按钮组成:后退,下一步,默认情况下在右下角取消。我们有没有可能将这些向导按钮移到表的左下角(精确到底部的工作表中心,详细地说,这些按钮应该向左移动到工作表中心)?

简短的回答是肯定的。您需要派生自己的CPPropertySheet类并覆盖OnInitDialog()移动按钮。您需要使用IDID_WIZNEXTID_WIZBACK来获取指向实际按钮的指针。一旦有了指针,您就可以像使用CWnd::MoveWindow移动任何其他控件一样移动按钮。以下是一些示例代码(缺少错误检查)


感谢您的回复。请参阅我希望将它们移动到工作表的中心。按照您的建议操作,控件将向左移动,但是我们如何才能确保它们已准确地移动到向导工作表的中心?我不确定我是否理解您的问题。您最初的帖子询问如何“将这些向导按钮向左移动到工作表底部的中心(精确到底部的工作表中心,详细来说,这些按钮应该向左移动到工作表的中心)”。我的示例代码显示了如何将“后退”按钮向左移动(中心)50个单位。计算板材的实际中心并相应地调整移动并不困难。
CWnd* pWnd = GetDlgItem(ID_WIZBACK);
    CRect rect(0, 0, 0, 0);

    pWnd->GetWindowRect(&rect);
    rect.OffsetRect(-50, 0);
    ScreenToClient(&rect);
    pWnd->MoveWindow(&rect);