CPropertyPage::OnWizardFinish
Diese Memberfunktion wird vom Framework aufgerufen, wenn der Benutzer auf der Endschaltfläche in einem Assistenten auf klickt.
virtual BOOL OnWizardFinish( );
Rückgabewert
Ungleich 0 (null), wenn das Eigenschaftenblatt wenn die Assistentenende zerstört wird, null andernfalls.
Hinweise
Wenn ein Benutzer auf die Fertig stellen Schaltfläche in einem Assistenten auf klickt, ruft das Framework diese Funktion auf; Wenn OnWizardFinishTRUE (einen Wert ungleich 0) zurückgibt, ist das Eigenschaftenblatt in der Lage zerstört werden (aber nicht tatsächlich zerstört). Aufruf DestroyWindow, um des Eigenschaftenblatts zu zerstören. Rufen Sie nicht DestroyWindow von OnWizardFinish auf; dazu verursacht Heapbeschädigung oder andere Fehler.
Sie können diese Memberfunktion überschreiben, um bestimmte Aktionen angeben, die der Benutzer ausführen muss, wenn die Endschaltfläche gedrückt wird. Wenn diese Funktion überschrieben wird, wird FALSE zurückgegeben, um zu verhindern, dass das Eigenschaftenblatt zerstört wird.
Weitere Informationen über die gesendeten Benachrichtigungsmeldungen, wenn der Benutzer die Endschaltfläche in einem Assistenteneigenschaftenblatt drückt, finden Sie unter PSN_WIZFINISH in Windows SDK.
Weitere Informationen dazu, wie Sie ein assistentenartigeigenschaftenblatt, finden Sie unter CPropertySheet::SetWizardMode macht.
Beispiel
// 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);
}
Anforderungen
Header: afxdlgs.h