CHOOSER.CPP
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:2k
源码类别:

Windows编程

开发平台:

Visual C++

  1. // chooser.cpp : Implements the CDialogChooser class
  2. //
  3. // This is a part of the Microsoft Foundation Classes C++ library.
  4. // Copyright (C) 1992-1995 Microsoft Corporation
  5. // All rights reserved.
  6. //
  7. // This source code is only intended as a supplement to the
  8. // Microsoft Foundation Classes Reference and Microsoft
  9. // QuickHelp and/or WinHelp documentation provided with the library.
  10. // See these sources for detailed information regarding the
  11. // Microsoft Foundation Classes product.
  12. #include "stdafx.h"
  13. #include "hierwiz.h"
  14. #include "chooser.h"
  15. #include "loadfile.h"
  16. #include "editdlg.h"
  17. #ifdef _PSEUDO_DEBUG
  18. #undef THIS_FILE
  19. static char BASED_CODE THIS_FILE[] = __FILE__;
  20. #endif
  21. // On construction, set up internal array with pointers to each step.
  22. CDialogChooser::CDialogChooser()
  23. {
  24. m_pDlgs[START_PAGE] = NULL;
  25. m_pDlgs[FEATURES_PAGE] = new CCustom1Dlg;
  26. m_pDlgs[LOADFILE_PAGE] = new CLoadFileDlg ;
  27. m_pDlgs[EDITDATA_PAGE] = new CEditDlg;
  28. m_nCurrDlg = 0;
  29. }
  30. // Remember where the custom steps begin, so we can delete them in
  31. //  the destructor
  32. #define FIRST_CUSTOM_STEP 1
  33. #define LAST_CUSTOM_STEP 3
  34. // The destructor deletes entries in the internal array corresponding to
  35. //  custom steps.
  36. CDialogChooser::~CDialogChooser()
  37. {
  38. for (int i = FIRST_CUSTOM_STEP; i <= LAST_CUSTOM_STEP; i++)
  39. {
  40. ASSERT(m_pDlgs[i] != NULL);
  41. delete m_pDlgs[i];
  42. }
  43. }
  44. // Use the internal array to determine the next step.
  45. CAppWizStepDlg* CDialogChooser::Next(CAppWizStepDlg* pDlg)
  46. {
  47. ASSERT(0 <= m_nCurrDlg && m_nCurrDlg < LAST_DLG);
  48. m_nCurrDlg++ ;
  49. if(pDlg == m_pDlgs[FEATURES_PAGE]) // If the features page is active
  50. return m_pDlgs[CCustom1Dlg::m_DataSource] ;
  51. return m_pDlgs[m_nCurrDlg] ;
  52. }
  53. // Use the internal array to determine the previous step.
  54. CAppWizStepDlg* CDialogChooser::Back(CAppWizStepDlg* pDlg)
  55. {
  56. ASSERT(1 <= m_nCurrDlg && m_nCurrDlg <= LAST_DLG);
  57. m_nCurrDlg--;
  58. if(pDlg == m_pDlgs[FEATURES_PAGE])
  59. return m_pDlgs[START_PAGE];
  60. else
  61. return m_pDlgs[FEATURES_PAGE];
  62. }