CPropertyPage::OnWizardFinish
Questa funzione membro viene chiamata dal framework quando l'utente fa clic sul pulsante fine di una procedura guidata.
virtual BOOL OnWizardFinish( );
Valore restituito
Diverso da zero se la finestra delle proprietà eliminato a completato la procedura guidata, in caso contrario zero.
Note
Quando un utente fa clic sul pulsante Fine in una procedura guidata, il framework chiama la funzione, quando OnWizardFinish restituisce TRUE (un valore diverso da zero, la finestra delle proprietà può eliminati (ma in realtà non viene eliminato).Chiamata DestroyWindow per eliminare la finestra delle proprietà.Non chiamare DestroyWindow da OnWizardFinish; questa operazione provocherà il danneggiamento della memoria heap o altri errori.
È possibile eseguire l'override della funzione membro per specificare i qualche azione che l'utente deve utilizzare quando il pulsante fine viene premuto.Nell'eseguire l'override della funzione, FALSE di ritorno per impedire la finestra delle proprietà da eliminato.
Per ulteriori informazioni sui messaggi di notifica inviati quando l'utente preme il pulsante fine in una finestra delle proprietà della procedura guidata, vedere PSN_WIZFINISH in Windows SDK.
Per ulteriori informazioni su come creare una finestra delle proprietà di procedura guidata- tipo, vedere CPropertySheet::SetWizardMode.
Esempio
// 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);
}
Requisiti
Header: afxdlgs.h