CPropertyPage::OnWizardFinish
このメンバー関数は、フレームワークによってユーザーがウィザードの[完了]をクリックしたときに呼び出されます。
virtual BOOL OnWizardFinish( );
戻り値
ウィザードが完了時プロパティ シートが破棄された場合、; それ以外の場合は。
解説
ユーザーがウィザードの [完了] のボタンをクリックすると、フレームワークはこの関数を呼び出します; OnWizardFinish が [真] (ゼロ以外の値) を返す場合は、プロパティ シートは破棄できます (ただし実際には破棄されません)。プロパティ シートを破棄します DestroyWindow。OnWizardFinishDestroyWindow からを呼び出さないでください; 共有すると、ヒープの破損や他のエラーが発生します。
完了のボタンが押されたときにユーザーが使用する必要のあるアクションを指定するには、このメンバー関数をオーバーライドできます。防ぐために、この関数をオーバーライドする場合、戻り値の FALSE プロパティ シートが破棄されなくなります。
送信される通知メッセージの詳細については、プロパティ シートのユーザーがウィザードの[完了]をクリックしたときに、Windows SDKの PSN_WIZFINISH を参照してください。
ウィザード型のプロパティ シートをする方法の詳細に CPropertySheet::SetWizardModeを参照してください。
使用例
// 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);
}
必要条件
ヘッダー : afxdlgs.h