CPropertyPage::OnWizardFinish
Cette fonction membre est appelée par l'infrastructure lorsque l'utilisateur clique sur le bouton de fin dans un assistant.
virtual BOOL OnWizardFinish( );
Valeur de retour
Une valeur différente de zéro si la feuille de propriétés est détruit une fois l'assistant terminé ; sinon zéro.
Notes
Lorsqu'un utilisateur clique sur le bouton de Finish dans un assistant, l'infrastructure appelle cette fonction ; lorsque OnWizardFinish retourne TRUE (une valeur différente de zéro), la feuille de propriétés peut être perdues (mais n'est pas détruit réellement).Appel DestroyWindow pour détruire la feuille de propriétés.n'appelez pas DestroyWindow d' OnWizardFinish; cela provoque l'altération du tas ou d'autres erreurs.
Vous pouvez substituer la fonction membre pour spécifier une action que l'utilisateur doit prendre lorsque le bouton de fin est enfoncé.En substituant cette fonction, FALSE de retour pour empêcher la feuille de propriétés d'être perdue.
Pour plus d'informations sur les messages de notification l'a envoyé lorsque l'utilisateur appuie sur le bouton de fin dans une feuille de propriétés de l'assistant, consultez PSN_WIZFINISH dans Kit de développement logiciel Windows.
Pour plus d'informations sur la procédure à une feuille de propriétés de type assistant, consultez CPropertySheet::SetWizardMode.
Exemple
// Inform users regarding the selections they have made by
// navigating the pages in propertysheet.
BOOL CShapePage::OnWizardFinish()
{
CString report = _T("You have selected the following options:\n");
// Get the number of property pages from CPropertySheet.
CPropertySheet* sheet = (CPropertySheet*) GetParent();
int count = sheet->GetPageCount();
// Get the formatted string from each page. This formatted string
// will be shown in a message box. Each page knows about the
// string to be displayed. For simplicity, we derive a class
// from CPropertyPage called CMyPropertyPage. CMyPropertyPage
// has a pure virtual member function called GetPageSelections().
// All pages in the property sheet must be derived from
// CMyPropertyPage so we loop through each page to get the
// formatted string by calling the GetPageSelections() function.
for (int i = 0; i < count; i++)
{
CMyPropertyPage* page = (CMyPropertyPage*) sheet->GetPage(i);
CString str;
page->GetPageSelections(str);
report += _T("\n") + str;
}
AfxMessageBox(report);
return CPropertyPage::OnWizardFinish();
}
// An example of implementing the GetPageSelections() for CStylePage.
// CStylePage is a CMyPropertyPage-derived class, which in turn is a
// CPropertyPage-derived class.
void CStylePage::GetPageSelections(CString &str)
{
str.Format(_T("Number of objects to be created = %d"), m_NumObjects);
}
// An example of implementing the GetPageSelections() for CColorPage.
// CColorPage is a CMyPropertyPage-derived class, which in turn is a
// CPropertyPage-derived class.
void CColorPage::GetPageSelections(CString &str)
{
str = _T("Color selected is ");
switch (m_Color)
{
case RGB(0, 0, 0):
str += _T("Black");
break;
case RGB(255, 0, 0):
str += _T("Red");
break;
case RGB(0, 255, 0):
str += _T("Green");
break;
case RGB(0, 0, 255):
str += _T("Blue");
break;
default:
str += _T("Custom");
break;
}
}
// An example of implementing the GetPageSelections() for CShapePage.
// CShapePage is a CMyPropertyPage-derived class, which in turn is a
// CPropertyPage-derived class.
void CShapePage::GetPageSelections(CString &str)
{
CString shapename;
switch (m_Selection)
{
case IDC_RECTANGLE:
shapename = _T("Rectangle");
break;
case IDC_ROUND_RECTANGLE:
shapename = _T("Round Rectangle");
break;
case IDC_ELLIPSE:
shapename = _T("Ellipse");
break;
}
str.Format(_T("Shape to be created is %s"), shapename);
}
Configuration requise
Header: afxdlgs.h