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

Windows编程

开发平台:

Visual C++

  1. //-----------------------------------------------------------------------------
  2. // Microsoft OLE DB TABLECOPY Sample
  3. // Copyright (C) 1995-1998 Microsoft Corporation
  4. //
  5. // @doc
  6. //
  7. // @module WIZARD.CPP
  8. //
  9. //-----------------------------------------------------------------------------
  10. /////////////////////////////////////////////////////////////////
  11. // Includes
  12. //
  13. /////////////////////////////////////////////////////////////////
  14. #include "common.h"
  15. #include "tablecopy.h"
  16. #include "wizard.h"
  17. #include "progress.h"
  18. /////////////////////////////////////////////////////////////////////
  19. // CDialogBase::CDialogBase
  20. //
  21. /////////////////////////////////////////////////////////////////////
  22. CDialogBase::CDialogBase(HWND hWnd, HINSTANCE hInst)
  23. {
  24. ASSERT(hInst);
  25. m_hWnd = hWnd;
  26. m_hInst = hInst;
  27. }
  28. /////////////////////////////////////////////////////////////////////
  29. // CDialogBase::~CDialogBase
  30. //
  31. /////////////////////////////////////////////////////////////////////
  32. CDialogBase::~CDialogBase()
  33. {
  34. Destroy();
  35. }
  36. /////////////////////////////////////////////////////////////////////
  37. // ULONG CDialogBase::Destroy
  38. //
  39. /////////////////////////////////////////////////////////////////////
  40. ULONG CDialogBase::Destroy()
  41. {
  42. if(m_hWnd)
  43. {
  44. EndDialog(m_hWnd, 0);
  45. m_hWnd = NULL;
  46. }
  47. return 0;
  48. }
  49. ////////////////////////////////////////////////////////////////
  50. // CWizard::CWizard
  51. //
  52. /////////////////////////////////////////////////////////////////
  53. CWizard::CWizard(HWND hWnd, HINSTANCE hInst)
  54. : CDialogBase(hWnd, hInst)
  55. {
  56. m_pCTableCopy = new CTableCopy(this);
  57. m_pCProgress = new CProgress(hWnd, hInst);
  58. m_iPrevStep = WIZ_STEP1;
  59. m_rgDialogSteps[WIZ_STEP1] = new CS1Dialog(hWnd, hInst, m_pCTableCopy);
  60. m_rgDialogSteps[WIZ_STEP2] = new CS2Dialog(hWnd, hInst, m_pCTableCopy);
  61. m_rgDialogSteps[WIZ_STEP3] = new CS3Dialog(hWnd, hInst, m_pCTableCopy);
  62. m_rgDialogSteps[WIZ_STEP4] = new CS4Dialog(hWnd, hInst, m_pCTableCopy);
  63. m_rgDialogSteps[WIZ_TYPES] = new CTypesDialog(hWnd, hInst, m_pCTableCopy);
  64. }
  65. ////////////////////////////////////////////////////////////////
  66. // CWizard::~CWizard
  67. //
  68. /////////////////////////////////////////////////////////////////
  69. CWizard::~CWizard()
  70. {
  71. delete m_pCTableCopy;
  72. delete m_pCProgress;
  73. delete m_rgDialogSteps[WIZ_STEP1];
  74. delete m_rgDialogSteps[WIZ_STEP2];
  75. delete m_rgDialogSteps[WIZ_STEP3];
  76. delete m_rgDialogSteps[WIZ_STEP4];
  77. delete m_rgDialogSteps[WIZ_TYPES];
  78. }
  79. ////////////////////////////////////////////////////////////////
  80. // CWizard::Display
  81. //
  82. /////////////////////////////////////////////////////////////////
  83. ULONG CWizard::Display()
  84. {
  85. return DisplayStep(WIZ_STEP1);
  86. }
  87. ////////////////////////////////////////////////////////////////
  88. // ULONG CWizard::DisplayStep
  89. //
  90. /////////////////////////////////////////////////////////////////
  91. ULONG CWizard::DisplayStep(ULONG iStep)
  92. {
  93. ASSERT(iStep >= WIZ_STEP1 && iStep < END_WIZ);
  94. return m_rgDialogSteps[iStep]->Display();
  95. }
  96. ////////////////////////////////////////////////////////////////
  97. // ULONG CWizard::DestroyPrevStep
  98. //
  99. /////////////////////////////////////////////////////////////////
  100. ULONG CWizard::DestroyPrevStep(ULONG iCurStep)
  101. {
  102. if(iCurStep != m_iPrevStep)
  103. m_rgDialogSteps[m_iPrevStep]->Destroy();
  104. m_iPrevStep = iCurStep;
  105. return 0;
  106. }