TaskDialogSamples.h
上传用户:szled88
上传日期:2015-04-09
资源大小:43957k
文件大小:4k
源码类别:

对话框与窗口

开发平台:

Visual C++

  1. #pragma once
  2. class CProgressEffectsDialog : public CXTPTaskDialog
  3. {
  4. public:
  5. CProgressEffectsDialog(CWnd* pWndParent);
  6. protected:
  7. virtual void OnDialogConstructed();
  8. virtual void OnButtonClicked(int nButtonID, BOOL& bCloseDialog);
  9. private:
  10. void UpdateMainInstruction();
  11. void CycleState();
  12. void ToggleMode();
  13. int  m_eState;
  14. BOOL m_bMarquee;
  15. CString m_strContext;
  16. };
  17. class CDynamicTextDialog : public CXTPTaskDialog
  18. {
  19. public:
  20. CDynamicTextDialog(CWnd* pWndParent);
  21. protected:
  22. virtual void OnDialogConstructed();
  23. virtual void OnButtonClicked(int nButtonID, BOOL& bCloseDialog);
  24. private:
  25. };
  26. class CTimerDialog : public CXTPTaskDialog
  27. {
  28. public:
  29. CTimerDialog(CWnd* pWndParent);
  30. protected:
  31. virtual void OnDialogConstructed();
  32. virtual void OnTimer(DWORD dwMilliSeconds, BOOL& bReset);
  33. virtual void OnVerificationClicked(BOOL bChecked);
  34. virtual void OnButtonClicked(int nButtonID, BOOL& bCloseDialog);
  35. int m_nIcon;
  36. BOOL m_bUpdateIcon;
  37. };
  38. #define ID_BUTTON_NEXT 101
  39. #define ID_BUTTON_PREV 100
  40. class CPropetySheetTaskDialog
  41. {
  42. public:
  43. class CTaskDialogPage : public CXTPTaskDialog
  44. {
  45. public:
  46. CTaskDialogPage(CWnd* pWndParent = NULL)
  47. : CXTPTaskDialog(pWndParent)
  48. {
  49. SetCommonButtons(TDCBF_CANCEL_BUTTON);
  50. SetWindowTitle(_T("PropertySheet Sample"));
  51. SetMainInstruction(_T("Follow steps to finish wizard"));
  52. m_pPagePrev = 0;
  53. m_pPageNext = 0;
  54. }
  55. virtual void OnDialogConstructed()
  56. {
  57. EnableButton(ID_BUTTON_PREV, m_pPagePrev != NULL);
  58. }
  59. virtual void OnNavigated()
  60. {
  61. OnDialogConstructed();
  62. };
  63. void OnButtonClicked(int nButtonID, BOOL& bCloseDialog)
  64. {
  65. switch (nButtonID)
  66. {
  67. case ID_BUTTON_PREV: if (m_pPagePrev) NavigatePage(*m_pPagePrev); bCloseDialog = FALSE; break;
  68. case ID_BUTTON_NEXT: if (m_pPageNext) NavigatePage(*m_pPageNext);  bCloseDialog = FALSE; break;
  69. }
  70. }
  71. public:
  72. CTaskDialogPage* m_pPagePrev;
  73. CTaskDialogPage* m_pPageNext;
  74. };
  75. class CPage1 : public CTaskDialogPage
  76. {
  77. public:
  78. CPage1(CWnd* pWndParent)
  79. : CTaskDialogPage(pWndParent)
  80. {
  81. AddButton(_T("&Prev"), ID_BUTTON_PREV);
  82. AddButton(_T("&Next"), ID_BUTTON_NEXT);
  83. SetContent(_T("Page 1"));
  84. SetExpandedInformation(_T("Prepare to see 4 pages :)"));
  85. }
  86. };
  87. class CPage2 : public CTaskDialogPage
  88. {
  89. public:
  90. CPage2()
  91. {
  92. AddButton(_T("&Prev"), ID_BUTTON_PREV);
  93. AddButton(_T("&Next"), ID_BUTTON_NEXT);
  94. AddRadioButton(_T("First Option"), 200);
  95. AddRadioButton(_T("Next Option"), 201);
  96. SetDefaultRadioButton(m_nOption = 200);
  97. SetContent(_T("Page 2"));
  98. SetDefaultButton(ID_BUTTON_NEXT);
  99. }
  100. void OnRadioButtonClicked(int nButtonID) 
  101. {
  102. SetDefaultRadioButton(m_nOption = nButtonID);
  103. }
  104. public:
  105. int m_nOption;
  106. };
  107. class CPage3 : public CTaskDialogPage
  108. {
  109. public:
  110. CPage3()
  111. {
  112. AddButton(_T("&Prev"), ID_BUTTON_PREV);
  113. AddButton(_T("&Next"), ID_BUTTON_NEXT);
  114. SetContent(_T("Page 3"));
  115. SetDefaultButton(ID_BUTTON_NEXT);
  116. SetVerificationText(_T("Enable this option"));
  117. SetVerifyCheckState(m_bState = TRUE);
  118. }
  119. void OnVerificationClicked(BOOL bChecked) 
  120. {
  121. SetVerifyCheckState(m_bState = bChecked);
  122. }
  123. public:
  124. BOOL m_bState;
  125. };
  126. class CPage4 : public CTaskDialogPage
  127. {
  128. public:
  129. CPage4()
  130. {
  131. AddButton(_T("&Prev"), ID_BUTTON_PREV);
  132. AddButton(_T("&Finish"), IDOK);
  133. SetContent(_T("Page 4"));
  134. SetDefaultButton(IDOK);
  135. }
  136. };
  137. CPropetySheetTaskDialog(CWnd* pWndParent)
  138. : m_page1(pWndParent)
  139. {
  140. m_page1.m_pPageNext = &m_page2;
  141. m_page2.m_pPagePrev = &m_page1;
  142. m_page2.m_pPageNext = &m_page3;
  143. m_page3.m_pPagePrev = &m_page2;
  144. m_page3.m_pPageNext = &m_page4;
  145. m_page4.m_pPagePrev = &m_page3;
  146. }
  147. INT_PTR DoModal(BOOL bUseComCtl32)
  148. {
  149. return m_page1.DoModal(bUseComCtl32);
  150. }
  151. public:
  152. CPage1 m_page1;
  153. CPage2 m_page2;
  154. CPage3 m_page3;
  155. CPage4 m_page4;
  156. };