Aracılığıyla paylaş


CPropertyPage::OnWizardFinish

Kullanıcı bir Sihirbazı'nda Son'u düğmesini tıklattığında bu üye işlevi çerçevesi tarafından çağrılır.

virtual BOOL OnWizardFinish( );

Dönüş Değeri

Sihirbaz tamamlandığında, özellik sayfası yok, sıfır olmayan; Aksi takdirde sıfır.

Notlar

Kullanıcı tıklattığında Son framework Sihirbazı düğmesini; bu işlevi çağırır zaman OnWizardFinish döndüren doğru (bir sıfır olmayan değer), özellik sayfası yok edebileceği (ancak gerçekte zarar değil).Call DestroyWindow özellik sayfası yok etmek.Do not call DestroyWindow from OnWizardFinish; Bunu yaparsanız bu nedenle Öbek Bozulması veya başka hatalara neden olur.

Son düğmesine basıldığında kullanıcı gerçekleştirmeniz gereken bazı eylemi belirtmek için bu üye işlevi geçersiz kılabilirsiniz.Bu işlevi geçersiz kılarken dönmek yanlış bozdu gelen özellik sayfası önlemek için.

Kullanıcı Sihirbazı özellik sayfasında son düğmesine bastığında gönderilen bildirim iletileri hakkında daha fazla bilgi için bkz: PSN_WIZFINISH , Windows SDK.

Sihirbaz türü özellik sayfası sağlamak hakkında daha fazla bilgi için bkz: CPropertySheet::SetWizardMode.

Örnek

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

Gereksinimler

Başlık: afxdlgs.h

Ayrıca bkz.

Başvuru

CPropertyPage sınıfı

Hiyerarşi grafik

CPropertySheet::SetWizardMode