Udostępnij za pośrednictwem


CPropertyPage::OnWizardFinish

Ta funkcja Członkowskie w ramach nazywa się po kliknięciu przycisku Zakończ w kreatorze.

virtual BOOL OnWizardFinish( );

Wartość zwracana

Niezerowa, jeśli arkusz właściwości jest niszczony, gdy kreator zakończy pracę; zero w inny sposób.

Uwagi

Gdy użytkownik kliknie Zakończ przycisku w Kreatorze ramach wywołuje tę funkcję; gdy OnWizardFinish zwraca TRUE (wartość różną od zera), arkusz właściwości jest w stanie zniszczone (ale nie jest faktycznie zniszczone).Wywołanie DestroyWindow do zniszczenia arkusz właściwości.Do not call DestroyWindow from OnWizardFinish; spowodowałoby uszkodzenie sterty lub inne błędy.

Można zastąpić tej funkcji Członkowskich określić niektóre działania, które użytkownik musi podjąć po naciśnięciu przycisku Zakończ.Podczas zastępowania tej funkcji, należy zwrócić FALSE Aby zapobiec zniszczeniu arkusz właściwości.

Aby uzyskać więcej informacji na temat wiadomości powiadomienia wysyłane, gdy użytkownik naciśnie przycisk Zakończ w arkuszu właściwości kreatora, zobacz PSN_WIZFINISH w Windows SDK.

Aby uzyskać więcej informacji na jak arkusz właściwości Typ kreatora, zobacz CPropertySheet::SetWizardMode.

Przykład

// 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);
}

Wymagania

Nagłówek: afxdlgs.h

Zobacz też

Informacje

Klasa CPropertyPage

Diagram hierarchii

CPropertySheet::SetWizardMode