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

对话框与窗口

开发平台:

Visual C++

  1. // XTPTaskDialog.h: interface for the CXTPTaskDialog class.
  2. //
  3. // This file is a part of the XTREME TOOLKIT PRO MFC class library.
  4. // (c)1998-2008 Codejock Software, All Rights Reserved.
  5. //
  6. // THIS SOURCE FILE IS THE PROPERTY OF CODEJOCK SOFTWARE AND IS NOT TO BE
  7. // RE-DISTRIBUTED BY ANY MEANS WHATSOEVER WITHOUT THE EXPRESSED WRITTEN
  8. // CONSENT OF CODEJOCK SOFTWARE.
  9. //
  10. // THIS SOURCE CODE CAN ONLY BE USED UNDER THE TERMS AND CONDITIONS OUTLINED
  11. // IN THE XTREME TOOLKIT PRO LICENSE AGREEMENT. CODEJOCK SOFTWARE GRANTS TO
  12. // YOU (ONE SOFTWARE DEVELOPER) THE LIMITED RIGHT TO USE THIS SOFTWARE ON A
  13. // SINGLE COMPUTER.
  14. //
  15. // CONTACT INFORMATION:
  16. // support@codejock.com
  17. // http://www.codejock.com
  18. //
  19. /////////////////////////////////////////////////////////////////////////////
  20. //{{AFX_CODEJOCK_PRIVATE
  21. #if !defined(__XTPTASKDIALOG_H__)
  22. #define __XTPTASKDIALOG_H__
  23. //}}AFX_CODEJOCK_PRIVATE
  24. #if _MSC_VER > 1000
  25. #pragma once
  26. #endif // _MSC_VER > 1000
  27. class CXTPPropExchangeXMLNode;
  28. #include "XTPTaskDialogFrame.h"
  29. //===========================================================================
  30. // Summary:
  31. //       The CXTPTaskDialog class creates, displays, and operates a task
  32. //       dialog. A task dialog is similar to, while much more flexible than,
  33. //       a basic message box. The task dialog contains application-defined
  34. //       messages, title, verification check box, command links and push
  35. //       buttons, plus any combination of predefined icons and push buttons.
  36. //===========================================================================
  37. class _XTP_EXT_CLASS CXTPTaskDialog : public CXTPTaskDialogFrame
  38. {
  39. public:
  40. //-----------------------------------------------------------------------
  41. // Summary:
  42. //       Constructs a CXTPTaskDialog object.
  43. // Parameters:
  44. //       pWndParent - Points to the parent or owner window object
  45. //-----------------------------------------------------------------------
  46. CXTPTaskDialog(CWnd* pWndParent = NULL);
  47. //-----------------------------------------------------------------------
  48. // Summary:
  49. //     Destroys a CXTPTaskDialog object, handles cleanup and
  50. //     deallocation.
  51. //-----------------------------------------------------------------------
  52. virtual ~CXTPTaskDialog();
  53. //-----------------------------------------------------------------------
  54. // Summary:
  55. //       Call this member function to set the window title for the task
  56. //       dialog.
  57. // Parameters:
  58. //       pszText - Pointer that references the string to be used for the
  59. //                 task dialog title.
  60. // Remarks:
  61. //       The parameter <i>pszText</i> can be either a null-terminated string
  62. //       or an integer resource identifier passed to the MAKEINTRESOURCE
  63. //       macro. If this parameter is NULL, the filename of the executable
  64. //       program is used.
  65. // See Also:
  66. //       SetWidth, EnableCancellation, EnableRelativePosition,
  67. //       EnableRtlLayout, EnableMinimize, OnDialogConstructed
  68. //-----------------------------------------------------------------------
  69. void SetWindowTitle(LPCTSTR pszText);
  70. //-----------------------------------------------------------------------
  71. // Summary:
  72. //       Call this member function to set the label for the verification
  73. //       checkbox to be displayed in the task dialog.
  74. // Parameters:
  75. //       pszText - Pointer that references the string to be used to label
  76. //                 the verification checkbox.
  77. // Remarks:
  78. //       The parameter <i>pszText</i> can be either a null-terminated string
  79. //       or an integer resource identifier passed to the MAKEINTRESOURCE
  80. //       macro. If this parameter is NULL, the verification checkbox is not
  81. //       displayed in the task dialog.
  82. // See Also:
  83. //       OnVerificationClicked, SetVerifyCheckState, IsVerificiationChecked,
  84. //       ClickVerification
  85. //-----------------------------------------------------------------------
  86. void SetVerificationText(LPCTSTR pszText);
  87. //-----------------------------------------------------------------------
  88. // Summary:
  89. //       Call this member function to set the expanded control text for the
  90. //       task dialog. This function is ignored unless SetExpandedInformation
  91. //       has been called.
  92. // Parameters:
  93. //       pszText - Pointer that references the string to be used to label
  94. //                 the button for collapsing the expandable information.
  95. // Remarks:
  96. //       The parameter <i>pszText</i> can be either a null-terminated string
  97. //       or an integer resource identifier passed to the MAKEINTRESOURCE
  98. //       macro. If this parameter is NULL, then the value set with
  99. //       SetCollapsedControlText will be used for the expanded control text
  100. //       as well.
  101. // See Also:
  102. //       SetCollapsedControlText, SetExpandedInformation, ExpandedByDefault,
  103. //       ExpandFooterArea, OnExpandoButtonClicked
  104. //-----------------------------------------------------------------------
  105. void SetExpandedControlText(LPCTSTR pszText);
  106. //-----------------------------------------------------------------------
  107. // Summary:
  108. //       Call this member function to set the collapsed control text for the
  109. //       task dialog. This function is ignored unless SetExpandedInformation
  110. //       has been called.
  111. // Parameters:
  112. //       pszText - Pointer that references the string to be used to label
  113. //                 the button for expanding the expandable information.
  114. // Remarks:
  115. //       The parameter <i>pszText</i> can be either a null-terminated string
  116. //       or an integer resource identifier passed to the MAKEINTRESOURCE
  117. //       macro. If this parameter is NULL, then the value set with
  118. //       SetExpandedControlText will be used for the collapsed control text
  119. //       as well.
  120. // See Also:
  121. //       SetExpandedControlText, SetExpandedInformation, ExpandedByDefault,
  122. //       ExpandFooterArea, OnExpandoButtonClicked
  123. //-----------------------------------------------------------------------
  124. void SetCollapsedControlText(LPCTSTR pszText);
  125. //-----------------------------------------------------------------------
  126. // Summary:
  127. //       Call this member function to set the main instruction text for the
  128. //       task dialog.
  129. // Parameters:
  130. //       pszText - Pointer that references the string to be used for the main
  131. //                 instruction.
  132. // Remarks:
  133. //       The parameter <i>pszText</i> can be either a null-terminated string
  134. //       or an integer resource identifier passed to the MAKEINTRESOURCE
  135. //       macro.
  136. // Returns:
  137. //       TRUE if successful, otherwise returns FALSE.
  138. //-----------------------------------------------------------------------
  139. BOOL SetMainInstruction(LPCTSTR pszText);
  140. //-----------------------------------------------------------------------
  141. // Summary:
  142. //       Call this member function to set the content text for the task
  143. //       dialog.
  144. // Parameters:
  145. //       pszText - Pointer that references the string to be used for the
  146. //                 dialog's primary content.
  147. // Remarks:
  148. //       The parameter <i>pszText</i> can be either a null-terminated string
  149. //       or an integer resource identifier passed to the MAKEINTRESOURCE
  150. //       macro. If EnableHyperlinks has been called, then this string may
  151. //       contain hyperlinks in the form:
  152. // <code>
  153. // <A HREF="executablestring">Hyperlink Text</A>.
  154. // </code>
  155. // Returns:
  156. //       TRUE if successful, otherwise returns FALSE.
  157. // See Also:
  158. //       OnHyperlinkClicked, SetExpandedInformation, SetFooter, EnableHyperlinks
  159. //-----------------------------------------------------------------------
  160. BOOL SetContent(LPCTSTR pszText);
  161. //-----------------------------------------------------------------------
  162. // Summary:
  163. //       Call this member function to set the expanded information text for
  164. //       the task dialog.
  165. // Parameters:
  166. //       pszText - Pointer that references the string to be used for displaying
  167. //                 additional information.
  168. // Remarks:
  169. //       The parameter <i>pszText</i> can be either a null-terminated string
  170. //       or an integer resource identifier passed to the MAKEINTRESOURCE
  171. //       macro. The additional information is displayed either immediately
  172. //       below the content or below the footer text depending on whether
  173. //       ExpandFooterArea has been called. If EnableHyperlinks has been called,
  174. //       then this string may contain hyperlinks in the form:
  175. // <code>
  176. // <A HREF="executablestring">Hyperlink Text</A>.
  177. // </code>
  178. // Returns:
  179. //       TRUE if successful, otherwise returns FALSE.
  180. // See Also:
  181. //       SetCollapsedControlText, SetExpandedControlText, ExpandedByDefault,
  182. //       ExpandFooterArea, OnExpandoButtonClicked,
  183. //       SetContent, OnHyperlinkClicked, SetFooter, EnableHyperlinks
  184. //-----------------------------------------------------------------------
  185. BOOL SetExpandedInformation(LPCTSTR pszText);
  186. //-----------------------------------------------------------------------
  187. // Summary:
  188. //       Call this member function to set the footer text for the task dialog.
  189. // Parameters:
  190. //       pszText - Pointer that references the string to be used in the footer
  191. //                 area of the task dialog.
  192. // Remarks:
  193. //       The parameter <i>pszText</i> can be either a null-terminated string
  194. //       or an integer resource identifier passed to the MAKEINTRESOURCE
  195. //       macro. If EnableHyperlinks has been called, then this string may
  196. //       contain hyperlinks in the form:
  197. // <code>
  198. // <A HREF="executablestring">Hyperlink Text</A>.
  199. // </code>
  200. // Returns:
  201. //       TRUE if successful, otherwise returns FALSE.
  202. // See Also:
  203. //       SetContent, SetExpandedInformation, OnHyperlinkClicked, EnableHyperlinks
  204. //-----------------------------------------------------------------------
  205. BOOL SetFooter(LPCTSTR pszText);
  206. //-----------------------------------------------------------------------
  207. // Summary:
  208. //       Call this member function to set the icon for the Main Instruction
  209. //       area of the task dialog.
  210. // Parameters:
  211. //       hIcon       - A handle to an Icon that is to be displayed in the task
  212. //                     dialog Main Instruction area. If this member is NULL, no
  213. //                     icon will be displayed.
  214. //       pszResource - Pointer that references the icon to be displayed in
  215. //                     the task dialog footer area. If this parameter is
  216. //                     NULL no icon will be displayed.
  217. // Remarks:
  218. //       The parameter <i>pszResource</i> must be an integer resource
  219. //       identifier passed to the MAKEINTRESOURCE macro, or one of the
  220. //       following predefined values:
  221. //
  222. //       * <b>TD_ERROR_ICON</b>       A stop-sign icon appears in the task
  223. //                                    dialog.
  224. //       * <b>TD_WARNING_ICON</b>     An exclamation-point icon appears in
  225. //                                    the task dialog.
  226. //       * <b>TD_INFORMATION_ICON</b> An icon consisting of a lowercase
  227. //                                    letter <b>i</b> in a circle appears
  228. //                                    in the task dialog.
  229. //       * <b>TD_SHIELD_ICON</b>      A shield icon appears in the task
  230. //                                    dialog.
  231. // Returns:
  232. //       TRUE if successful, otherwise returns FALSE.
  233. //-----------------------------------------------------------------------
  234. BOOL SetMainIcon(HICON hIcon);
  235. BOOL SetMainIcon(LPCWSTR pszResource); //<COMBINE CXTPTaskDialog::SetMainIcon@HICON>
  236. //-----------------------------------------------------------------------
  237. // Summary:
  238. //       Call this member function to use system icons
  239. // Parameters:
  240. //       bUseSysIcons - TRUE to use system icons when available for TD_ERROR_ICON,
  241. //                      TD_WARNING_ICON, TD_INFORMATION_ICON and TD_SHIELD_ICON
  242. //                      instead of Codejock Software icons. This parameter is
  243. //                      ignored when <i>bUseComCtl32</i> is set to TRUE.
  244. //-----------------------------------------------------------------------
  245. void SetUseSysIcons(BOOL bUseSysIcons = TRUE);
  246. //-----------------------------------------------------------------------
  247. // Summary:
  248. //       Call this member function to set the icon for the Footer
  249. //       area of the task dialog.
  250. // Parameters:
  251. //       hIcon       - A handle to an Icon that is to be displayed in the task
  252. //                     dialog footer area. If this member is NULL, no icon will
  253. //                     be displayed.
  254. //       pszResource - Pointer that references the icon to be displayed in
  255. //                     the task dialog footer area. If this parameter is
  256. //                     NULL no icon will be displayed.
  257. // Remarks:
  258. //       The parameter <i>pszResource</i> must be an integer resource
  259. //       identifier passed to the MAKEINTRESOURCE macro, or one of the
  260. //       following predefined values:
  261. //
  262. //       * <b>TD_ERROR_ICON</b>       A stop-sign icon appears in the task
  263. //                                    dialog.
  264. //       * <b>TD_WARNING_ICON</b>     An exclamation-point icon appears in
  265. //                                    the task dialog.
  266. //       * <b>TD_INFORMATION_ICON</b> An icon consisting of a lowercase
  267. //                                    letter <b>i</b> in a circle appears
  268. //                                    in the task dialog.
  269. //       * <b>TD_SHIELD_ICON</b>      A shield icon appears in the task
  270. //                                    dialog.
  271. // Returns:
  272. //       TRUE if successful, otherwise returns FALSE.
  273. //-----------------------------------------------------------------------
  274. BOOL SetFooterIcon(HICON hIcon);
  275. BOOL SetFooterIcon(LPCWSTR pszResource); //<COMBINE CXTPTaskDialog::SetFooterIcon@HICON>
  276. //-----------------------------------------------------------------------
  277. // Summary:
  278. //       Call this member function to set the width of the task dialog's
  279. //       client area.
  280. // Parameters:
  281. //       cxWidth     - Specifies the width of the task dialog's client area
  282. //                     in dialog units. If 0, task dialog will calculate the
  283. //                     ideal width.
  284. //       bPixelToDLU - TRUE indicates the size specified by cxWidth are pixel
  285. //                     units and need to be converted into dialog units (DLU).
  286. // See Also:
  287. //       SetWindowTitle, EnableCancellation, EnableRelativePosition,
  288. //       EnableRtlLayout, EnableMinimize, OnDialogConstructed
  289. //-----------------------------------------------------------------------
  290. void SetWidth(int cxWidth, BOOL bPixelToDLU = FALSE);
  291. //-----------------------------------------------------------------------
  292. // Summary:
  293. //       Call this member function to add a user defined button to the
  294. //       task dialog's command area.
  295. // Parameters:
  296. //       pszText   - Pointer that references the string to be used to label
  297. //                   the button.
  298. //       nButtonID - Indicates the value to be returned when this button
  299. //                   is selected.
  300. // Remarks:
  301. //       The parameter <i>pszText</i> can be either a null-terminated string
  302. //       or an integer resource identifier passed to the MAKEINTRESOURCE
  303. //       macro.  When using Command Links, you delineate the command from
  304. //       the note by placing a new line character in the string.
  305. // See Also:
  306. //       OnButtonClicked, EnableCommandLinks, SetDefaultButton, SetCommonButtons,
  307. //       GetSelectedButtonId, ClickButton, EnableButton, SetButtonElevationRequired
  308. //-----------------------------------------------------------------------
  309. void AddButton(LPCTSTR pszText, int nButtonID);
  310. //-----------------------------------------------------------------------
  311. // Summary:
  312. //       Call this member function to add a user defined radio button to the
  313. //       task dialog's command area.
  314. // Parameters:
  315. //       pszText   - Pointer that references the string to be used to label
  316. //                   the radio button.
  317. //       nButtonID - Indicates the value to be returned when this button
  318. //                   is selected.
  319. // Remarks:
  320. //       The parameter <i>pszText</i> can be either a null-terminated string
  321. //       or an integer resource identifier passed to the MAKEINTRESOURCE
  322. //       macro.
  323. // See Also:
  324. //       OnRadioButtonClicked, SetDefaultRadioButton, NoDefaultRadioButton,
  325. //       GetSelectedRadioButtonId, ClickRadioButton, EnableRadioButton
  326. //-----------------------------------------------------------------------
  327. void AddRadioButton(LPCTSTR pszText, int nButtonID);
  328. //-----------------------------------------------------------------------
  329. // Summary:
  330. //       Call this member function to indicate the buttons specified with
  331. //       AddButton should be displayed as command links (using a standard
  332. //       task dialog glyph) instead of push buttons. This function is ignored
  333. //       if AddButton has not been called.
  334. // Parameters:
  335. //       bEnable - TRUE to enable command links, FALSE to disable.
  336. //       bShowIcon - TRUE if the command links should display a glyph.
  337. // Remarks:
  338. //       When using command links, all characters up to the first new line
  339. //       character in AddButton's pszText argument will be treated as the
  340. //       command link's main text, and the remainder will be treated as the
  341. //       command link's note.
  342. // See Also:
  343. //       AddButton, OnButtonClicked, SetDefaultButton, SetCommonButtons,
  344. //       GetSelectedButtonId, ClickButton, EnableButton, SetButtonElevationRequired
  345. //-----------------------------------------------------------------------
  346. void EnableCommandLinks(BOOL bEnable = TRUE, BOOL bShowIcon = TRUE);
  347. //-----------------------------------------------------------------------
  348. // Summary:
  349. //       Enables hyperlink processing for the strings specified for the
  350. //       functions SetContent, SetExpandedInformation and SetFooter.
  351. // Parameters:
  352. //       bEnable - TRUE to enable hyperlinks, FALSE to disable.
  353. // Remarks:
  354. //       When enabled, Content, Expanded Information and Footer strings
  355. //       can contain hyperlinks in the form:
  356. // <code>
  357. // <A HREF="executablestring">Hyperlink Text</A>.
  358. // </code>
  359. // See Also:
  360. //       SetContent, SetExpandedInformation, SetFooter, OnHyperlinkClicked
  361. //-----------------------------------------------------------------------
  362. void EnableHyperlinks(BOOL bEnable = TRUE);
  363. // NEEDS COMMENT
  364. void EnableMarkup(BOOL bEnable = TRUE);
  365. //-----------------------------------------------------------------------
  366. // Summary:
  367. //       Call this member function to allow dialog cancellation for the
  368. //       task dialog.
  369. // Parameters:
  370. //       bEnable - TRUE to allow cancellation, otherwise FALSE.
  371. // Remarks:
  372. //       When <i>bAllow</i> is TRUE, this indicates that the dialog should
  373. //       be able to be closed using Alt-F4, Escape and the title bar's close
  374. //       button even if no cancel button is specified by the
  375. //       SetCommonButtons or AddButton member functions.
  376. // See Also:
  377. //       SetWidth, SetWindowTitle, EnableRelativePosition,
  378. //       EnableRtlLayout, EnableMinimize, OnDialogConstructed
  379. //-----------------------------------------------------------------------
  380. void EnableCancellation(BOOL bEnable = TRUE);
  381. //-----------------------------------------------------------------------
  382. // Summary:
  383. //       Call this member function to position the task dialog relative to the
  384. //       parent window.
  385. // Parameters:
  386. //       bEnable - TRUE to reposition dialog, otherwise FALSE.
  387. // Remarks:
  388. //       When <i>bEnable</i> is TRUE, this indicates that the task dialog
  389. //       should be positioned (centered) relative to the window specified by
  390. //       the hWndParent argument in the DoModal member function. If bEnable
  391. //       is FALSE, or hWndParent is NULL, the task dialog is positioned
  392. //       (centered) relative to the monitor.
  393. // See Also:
  394. //       SetWidth, EnableCancellation, SetWindowTitle,
  395. //       EnableRtlLayout, EnableMinimize, OnDialogConstructed
  396. //-----------------------------------------------------------------------
  397. void EnableRelativePosition(BOOL bEnable = TRUE);
  398. //-----------------------------------------------------------------------
  399. // Summary:
  400. //       Call this member function to display a Progress Bar for the
  401. //       task dialog.
  402. // Parameters:
  403. //       bShow    - TRUE indicates that a Progress Bar should be displayed.
  404. //       bMarquee - TRUE indicates the progress bar should be Marquee style.
  405. // See Also:
  406. //       SetMarqueeProgressBar, SetProgressBarState, SetProgressBarRange,
  407. //       SetProgressBarPos, StartProgressBarMarquee
  408. //-----------------------------------------------------------------------
  409. void ShowProgressBar(BOOL bShow, BOOL bMarquee = FALSE);
  410. //-----------------------------------------------------------------------
  411. // Summary:
  412. //       Call this member function to enable right to left text display for
  413. //       the task dialog.
  414. // Parameters:
  415. //       bEnable - TRUE indicates that text should be displayed reading
  416. //                 right to left.
  417. // See Also:
  418. //       SetWidth, EnableCancellation, EnableRelativePosition,
  419. //       SetWindowTitle, EnableMinimize, OnDialogConstructed
  420. //-----------------------------------------------------------------------
  421. void EnableRtlLayout(BOOL bEnable = TRUE);
  422. //-----------------------------------------------------------------------
  423. // Summary:
  424. //       Call this member function to display the text specified by the
  425. //       SetExpandedInformation member function when the dialog is initially
  426. //       displayed. This function is ignored if the SetExpandedInformation
  427. //       member function has not been called.
  428. // Parameters:
  429. //       bExpanded - TRUE indicates that the string specified by the
  430. //                   SetExpandedInformation member function should be displayed
  431. //                   when the dialog is initially displayed.
  432. // See Also:
  433. //       SetCollapsedControlText, SetExpandedInformation, SetExpandedControlText,
  434. //       ExpandFooterArea, OnExpandoButtonClicked
  435. //-----------------------------------------------------------------------
  436. void ExpandedByDefault(BOOL bExpanded = TRUE);
  437. //-----------------------------------------------------------------------
  438. // Summary:
  439. //       Call this member to display expanded information at the bottom of
  440. //       the task dialog's footer. This function is ignored if the
  441. //       SetExpandedInformation member function has not been called.
  442. // Parameters:
  443. //       bExpandFooter - TRUE indicates that the string specified by the
  444. //                       SetExpandedInformation member should be displayed
  445. //                       at the bottom of the dialog's footer area instead
  446. //                       of immediately after the dialog's content.
  447. // See Also:
  448. //       SetCollapsedControlText, SetExpandedInformation, ExpandedByDefault,
  449. //       SetExpandedControlText, OnExpandoButtonClicked
  450. //-----------------------------------------------------------------------
  451. void ExpandFooterArea(BOOL bExpandFooter = TRUE);
  452. //-----------------------------------------------------------------------
  453. // Summary:
  454. //       Call this member function to set the default button ID for the
  455. //       task dialog.
  456. // Parameters:
  457. //       nButtonID - Indicates the default button for the dialog.
  458. // Remarks:
  459. //       nButtonID may be any of the values specified when calling the
  460. ///      AddButton member function, or one of the IDs corresponding to the
  461. //       buttons specified in the SetCommonButtons member function:
  462. //
  463. //      * <b>IDCANCEL</b> Make the Cancel button the default.
  464. //      * <b>IDNO</b> Make the No button the default.
  465. //      * <b>IDOK</b> Make the OK button the default.
  466. //      * <b>IDRETRY</b> Make the Retry button the default.
  467. //      * <b>IDYES</b> Make the Yes button the default.
  468. //      * <b>IDCLOSE</b> Make the Close button the default.
  469. //
  470. //      If this member is zero or its value does not correspond to any button ID
  471. //      in the dialog, then the first button in the dialog will be the default.
  472. // See Also:
  473. //       AddButton, EnableCommandLinks, OnButtonClicked, SetCommonButtons,
  474. //       GetSelectedButtonId, ClickButton, EnableButton, SetButtonElevationRequired
  475. //-----------------------------------------------------------------------
  476. void SetDefaultButton(int nButtonID);
  477. //-----------------------------------------------------------------------
  478. // Summary:
  479. //       Call this member function to set the default radio button ID for the
  480. //       task dialog.
  481. // Parameters:
  482. //       nButtonID - Indicates the default radio button for the dialog.
  483. // Remarks:
  484. //       nButtonID may be any of the values specified when calling the
  485. //       AddRadioButton member function. If this member is zero or its value
  486. //       does not correspond to any radio button ID in the dialog, then the
  487. //       first button in the dialog will be the default.
  488. // See Also:
  489. //       AddRadioButton, OnRadioButtonClicked, NoDefaultRadioButton,
  490. //       GetSelectedRadioButtonId, ClickRadioButton, EnableRadioButton
  491. //-----------------------------------------------------------------------
  492. void SetDefaultRadioButton(int nButtonID);
  493. //-----------------------------------------------------------------------
  494. // Summary:
  495. //       Call this member function to disable default radio button selection.
  496. // Parameters:
  497. //       bNoDefault - TRUE indicates that no default item will be selected.
  498. // See Also:
  499. //       AddRadioButton, SetDefaultRadioButton, OnRadioButtonClicked,
  500. //       GetSelectedRadioButtonId, ClickRadioButton, EnableRadioButton
  501. //-----------------------------------------------------------------------
  502. void NoDefaultRadioButton(BOOL bNoDefault);
  503. //-----------------------------------------------------------------------
  504. // Summary:
  505. //       Call this member function to set the checked state for the verification
  506. //       checkbox when the dialog is initially displayed. This function is
  507. //       ignored if the SetVerificationText member function has not been called.
  508. // Parameters:
  509. //       bChecked - TRUE indicates that the verification checkbox in the
  510. //                  dialog should be checked when the dialog is initially
  511. //                  displayed.
  512. // See Also:
  513. //       OnVerificationClicked, OnVerificationClicked, IsVerificiationChecked,
  514. //       ClickVerification
  515. //-----------------------------------------------------------------------
  516. void SetVerifyCheckState(BOOL bChecked = TRUE);
  517. //-----------------------------------------------------------------------
  518. // Summary:
  519. //       Call this member function to enable the callback timer.
  520. // Parameters:
  521. //       bEnable - TRUE indicates that the task dialog's callback should
  522. //                  be called approximately every 200 milliseconds.
  523. // See Also:
  524. //       OnTimer, ModifyTaskStyle
  525. //-----------------------------------------------------------------------
  526. void EnableCallbackTimer(BOOL bEnable = TRUE);
  527. //-----------------------------------------------------------------------
  528. // Summary:
  529. //       Call this member function to enable the the task dialog to be minimized.
  530. // Parameters:
  531. //       bEnable - TRUE indicates that the task dialog's title bar and system
  532. //                 menu contain the minimize command.
  533. // See Also:
  534. //       SetWidth, EnableCancellation, EnableRelativePosition,
  535. //       EnableRtlLayout, SetWindowTitle, OnDialogConstructed
  536. //-----------------------------------------------------------------------
  537. void EnableMinimize(BOOL bEnable);
  538. //-----------------------------------------------------------------------
  539. // Summary:
  540. //       Specifies the push buttons displayed in the task dialog. If no
  541. //       common buttons are specified and no custom buttons are specified using
  542. //       the AddButton member function, the task dialog will contain the OK
  543. //       button by default.
  544. // Parameters:
  545. //       bOk       - TRUE if the task dialog contains the push button: <b>OK</b>.
  546. //       bYes      - TRUE if the task dialog contains the push button: <b>Yes</b>.
  547. //       bNo       - TRUE if the task dialog contains the push button: <b>No</b>.
  548. //       bCancel   - TRUE if the task dialog contains the push button: <b>Cancel</b>.
  549. //       bRetry    - TRUE if the task dialog contains the push button: <b>Retry</b>.
  550. //       bClose    - TRUE if the task dialog contains the push button: <b>Close</b>.
  551. //       dwButtons - Can be any combination of the flags listed in the
  552. //                   remarks section.
  553. // Remarks:
  554. //       Any of the following flags can be used with the dwButtons parameter:
  555. //
  556. //       * <b>TDCBF_OK_BUTTON<b>     The task dialog contains the push button: <b>OK</b>.
  557. //       * <b>TDCBF_YES_BUTTON<b>    The task dialog contains the push button: <b>Yes</b>.
  558. //       * <b>TDCBF_NO_BUTTON<b>     The task dialog contains the push button: <b>No</b>.
  559. //       * <b>TDCBF_CANCEL_BUTTON<b> The task dialog contains the push button: <b>Cancel</b>.
  560. //       * <b>TDCBF_RETRY_BUTTON<b>  The task dialog contains the push button: <b>Retry</b>.
  561. //       * <b>TDCBF_CLOSE_BUTTON<b>  The task dialog contains the push button: <b>Close</b>.
  562. //
  563. //       If the Cancel button is specified, the task dialog will respond to
  564. //       typical cancel actions (Alt-F4 and Escape).
  565. // See Also:
  566. //       AddButton, EnableCommandLinks, SetDefaultButton, OnButtonClicked,
  567. //       GetSelectedButtonId, ClickButton, EnableButton, SetButtonElevationRequired
  568. //-----------------------------------------------------------------------
  569. void SetCommonButtons(BOOL bOk, BOOL bYes, BOOL bNo, BOOL bCancel, BOOL bRetry, BOOL bClose);
  570. void SetCommonButtons(TASKDIALOG_COMMON_BUTTON_FLAGS dwButtons);
  571. //-----------------------------------------------------------------------
  572. // Summary:
  573. //       Call this member function to display the task dialog and return
  574. //       the selected button when done.
  575. // Parameters:
  576. //       bUseComCtl32 - TRUE to use ComCtl32.dll version of Task Dialog. This
  577. //                      parameter is ignored for operating systems older than
  578. //                      Windows Vista.
  579. // Returns:
  580. //       The return value is one of the button IDs specified in the AddButton
  581. //       member function or one of the following values:
  582. //
  583. //       * <b>0</b>        Function call failed.
  584. //       * <b>IDCANCEL</b> Cancel button was selected, Alt-F4 was pressed, Escape
  585. //                         was pressed or the user clicked on the close window button.
  586. //       * <b>IDNO</b>     No button was selected.
  587. //       * <b>IDOK</b>     OK button was selected.
  588. //       * <b>IDRETRY</b>  Retry button was selected.
  589. //       * <b>IDYES</b>    Yes button was selected.
  590. // Example:
  591. // <code>
  592. // CXTPTaskDialog taskDlg(this);
  593. // taskDlg.AddButton(_T("Change password"), IDOK);
  594. // taskDlg.SetCommonButtons(TDCBF_CANCEL_BUTTON);
  595. // taskDlg.SetMainIcon(TD_WARNING_ICON);
  596. // taskDlg.SetMainInstruction(_T("Change Password"));
  597. // taskDlg.SetContent(_T("Remember your changed password."));
  598. //
  599. // int nRet = taskDlg.DoModal();
  600. // switch (nRet)
  601. // {
  602. // case 0:
  603. //    AfxMessageBox(_T("Task Dialog could not be created!"));
  604. //    break;
  605. // case IDOK:
  606. //    // the user pressed the OK button, change password.
  607. //    break;
  608. // case IDCANCEL:
  609. //    // user canceled the dialog.
  610. //    break;
  611. // };
  612. // </code>
  613. //-----------------------------------------------------------------------
  614. INT_PTR DoModal(BOOL bUseComCtl32 = TRUE);
  615. //-----------------------------------------------------------------------
  616. // Summary:
  617. //       Call this member function to create modeless task dialog
  618. // Parameters:
  619. //       pParentWnd - Parent Window
  620. // Returns:
  621. //       TRUE if successful, otherwise returns FALSE.
  622. //-----------------------------------------------------------------------
  623. BOOL Create(CWnd* pParentWnd = NULL);
  624. //-----------------------------------------------------------------------
  625. // Summary:
  626. //       Call this member function to retrieve the ID of the button used
  627. //       to close the task dialog.
  628. // Returns:
  629. //       The return value is one of the button IDs specified in the AddButton
  630. //       member function or one of the following values:
  631. //
  632. //       * <b>0</b>        Function call failed.
  633. //       * <b>IDCANCEL</b> Cancel button was selected, Alt-F4 was pressed, Escape
  634. //                         was pressed or the user clicked on the close window button.
  635. //       * <b>IDNO</b>     No button was selected.
  636. //       * <b>IDOK</b>     OK button was selected.
  637. //       * <b>IDRETRY</b>  Retry button was selected.
  638. //       * <b>IDYES</b>    Yes button was selected.
  639. // See Also:
  640. //       AddButton, EnableCommandLinks, SetDefaultButton, SetCommonButtons,
  641. //       OnButtonClicked, ClickButton, EnableButton, SetButtonElevationRequired
  642. //-----------------------------------------------------------------------
  643. int GetSelectedButtonId() const;
  644. //-----------------------------------------------------------------------
  645. // Summary:
  646. //       Call this member function to retrieve the ID of the radio button
  647. //       that was selected when the task dialog was closed.
  648. // Returns:
  649. //       The return value is one of the button IDs specified in the
  650. //       AddRadioButton member function.
  651. // See Also:
  652. //       AddRadioButton, SetDefaultRadioButton, NoDefaultRadioButton,
  653. //       OnRadioButtonClicked, ClickRadioButton, EnableRadioButton
  654. //-----------------------------------------------------------------------
  655. int GetSelectedRadioButtonId() const;
  656. //-----------------------------------------------------------------------
  657. // Summary:
  658. //       Call this member function to retrieve the checked state of the
  659. //       verification checkbox when the dialog was closed.
  660. // Returns:
  661. //       TRUE if the verification check box was checked when the task
  662. //       dialog was closed, otherwise false.
  663. // See Also:
  664. //       SetVerificationText, SetVerifyCheckState, OnVerificationClicked,
  665. //       ClickVerification
  666. //-----------------------------------------------------------------------
  667. BOOL IsVerificiationChecked() const;
  668. //-----------------------------------------------------------------------
  669. // Summary:
  670. //       Call this member function to modify the style for the task dialog.
  671. // Parameters:
  672. //       dwRemove - Specifies the styles to be removed.
  673. //       dwAdd    - Specifies the styles to be added.
  674. // Remarks:
  675. //       Styles to be added or removed can be combined by using the bitwise
  676. //       OR (|) operator. The style can be any combination of the following
  677. //       values:
  678. //
  679. //       * <b>TDF_ENABLE_HYPERLINKS</b> See EnableHyperlinks.
  680. //       * <b>TDF_USE_HICON_MAIN</b> See SetMainIcon.
  681. //       * <b>TDF_USE_HICON_FOOTER</b> See SetFooterIcon.
  682. //       * <b>TDF_ALLOW_DIALOG_CANCELLATION</b> See EnableCancellation.
  683. //       * <b>TDF_USE_COMMAND_LINKS</b> See EnableCommandLinks.
  684. //       * <b>TDF_USE_COMMAND_LINKS_NO_ICON</b> See EnableCommandLinks.
  685. //       * <b>TDF_EXPAND_FOOTER_AREA</b> See ExpandFooterArea.
  686. //       * <b>TDF_EXPANDED_BY_DEFAULT</b> See ExpandedByDefault.
  687. //       * <b>TDF_VERIFICATION_FLAG_CHECKED</b> See SetVerifyCheckState.
  688. //       * <b>TDF_SHOW_PROGRESS_BAR</b> See ShowProgressBar.
  689. //       * <b>TDF_SHOW_MARQUEE_PROGRESS_BAR</b> See ShowProgressBar.
  690. //       * <b>TDF_CALLBACK_TIMER</b> See EnableCallbackTimer.
  691. //       * <b>TDF_POSITION_RELATIVE_TO_WINDOW</b> See EnableRelativePosition.
  692. //       * <b>TDF_RTL_LAYOUT</b> See EnableRtlLayout.
  693. //       * <b>TDF_NO_DEFAULT_RADIO_BUTTON</b> See NoDefaultRadioButton.
  694. //       * <b>TDF_CAN_BE_MINIMIZED</b> See EnableMinimize.
  695. // Returns:
  696. //       TRUE if style was successfully modified; otherwise, FALSE.
  697. //-----------------------------------------------------------------------
  698. BOOL ModifyTaskStyle(TASKDIALOG_FLAGS dwRemove, TASKDIALOG_FLAGS dwAdd);
  699. //-----------------------------------------------------------------------
  700. // Summary:
  701. //       Call this member function to simulate the action of a button click
  702. //       in the task dialog.
  703. // Parameters:
  704. //       nButtonID - Indicates the button ID to be selected.
  705. // Remarks:
  706. //       This member function should only be called from a derived class,
  707. //       and only after the task dialog has been initialized.
  708. // Example:
  709. // <code>
  710. // class CSimulateClickDlg : public CXTPTaskDialog
  711. // {
  712. // protected:
  713. //     virtual void OnDialogConstructed()
  714. //     {
  715. //          BOOL bClick = TRUE;
  716. //          if (bClick)
  717. //          {
  718. //              ClickButton(IDCANCEL);
  719. //          }
  720. //     }
  721. // };
  722. // </code>
  723. // See Also:
  724. //       AddButton, EnableCommandLinks, SetDefaultButton, SetCommonButtons,
  725. //       GetSelectedButtonId, OnButtonClicked, EnableButton, SetButtonElevationRequired
  726. //-----------------------------------------------------------------------
  727. void ClickButton(int nButtonID);
  728. //-----------------------------------------------------------------------
  729. // Summary:
  730. //       Call this member function to simulate the action of a radio button click
  731. //       in the task dialog.
  732. // Parameters:
  733. //       nButtonID - Indicates the radio button ID to be selected.
  734. // Remarks:
  735. //       This member function should only be called from a derived class,
  736. //       and only after the task dialog has been initialized.
  737. // Example:
  738. // <code>
  739. // class CSimulateClickDlg : public CXTPTaskDialog
  740. // {
  741. // protected:
  742. //     virtual void OnDialogConstructed()
  743. //     {
  744. //          BOOL bClick = TRUE;
  745. //          if (bClick)
  746. //          {
  747. //              ClickRadioButton(100);
  748. //          }
  749. //     }
  750. // };
  751. // </code>
  752. // See Also:
  753. //       AddRadioButton, SetDefaultRadioButton, NoDefaultRadioButton,
  754. //       GetSelectedRadioButtonId, OnRadioButtonClicked, EnableRadioButton
  755. //-----------------------------------------------------------------------
  756. void ClickRadioButton(int nButtonID);
  757. //-----------------------------------------------------------------------
  758. // Summary:
  759. //       Call this member function to simulate the action of clicking the
  760. //       verification checkbox in the task dialog.
  761. // Parameters:
  762. //       bChecked     - TRUE to set the state of the checkbox to be checked,
  763. //                      and FALSE to set it to be unchecked.
  764. //       bSetKeyFocus - TRUE to set the keyboard focus to the checkbox, and
  765. //                      FALSE otherwise.
  766. // Remarks:
  767. //       This member function should only be called from a derived class,
  768. //       and only after the task dialog has been initialized.
  769. // Example:
  770. // <code>
  771. // class CSimulateClickDlg : public CXTPTaskDialog
  772. // {
  773. // protected:
  774. //     virtual void OnDialogConstructed()
  775. //     {
  776. //          BOOL bClick = TRUE;
  777. //          if (bClick)
  778. //          {
  779. //              ClickVerification(TRUE, FALSE);
  780. //          }
  781. //     }
  782. // };
  783. // </code>
  784. // See Also:
  785. //       SetVerificationText, SetVerifyCheckState, IsVerificiationChecked,
  786. //       OnVerificationClicked
  787. //-----------------------------------------------------------------------
  788. void ClickVerification(BOOL bChecked, BOOL bSetKeyFocus);
  789. //-----------------------------------------------------------------------
  790. // Summary:
  791. //       Call this member function to enable/disable a push button in
  792. //       the task dialog.
  793. // Parameters:
  794. //       nButtonID - Indicates the ID of the push button to be enabled/disabled.
  795. //       bEnable   - FALSE to disable the button, TRUE to enable the button.
  796. // Remarks:
  797. //       This member function should only be called from a derived class,
  798. //       and only after the task dialog has been initialized.
  799. // Example:
  800. // <code>
  801. // class CEnableButtonDlg : public CXTPTaskDialog
  802. // {
  803. // protected:
  804. //     virtual void OnDialogConstructed()
  805. //     {
  806. //          EnableButton(IDOK, FALSE);
  807. //     }
  808. // };
  809. // </code>
  810. // See Also:
  811. //       AddButton, EnableCommandLinks, SetDefaultButton, SetCommonButtons,
  812. //       GetSelectedButtonId, ClickButton, OnButtonClicked, SetButtonElevationRequired
  813. //-----------------------------------------------------------------------
  814. void EnableButton(int nButtonID, BOOL bEnable = TRUE);
  815. //-----------------------------------------------------------------------
  816. // Summary:
  817. //       Call this member function to enable/disable a radio button in
  818. //       the task dialog.
  819. // Parameters:
  820. //       nButtonID - Indicates the ID of the radio button to be enabled/disabled.
  821. //       bEnable   - FALSE to disable the radio button, TRUE to enable the radio button.
  822. // Remarks:
  823. //       This member function should only be called from a derived class,
  824. //       and only after the task dialog has been initialized.
  825. // Example:
  826. // <code>
  827. // class CEnableRadioButtonDlg : public CXTPTaskDialog
  828. // {
  829. // protected:
  830. //     virtual void OnDialogConstructed()
  831. //     {
  832. //          EnableRadioButton(100, FALSE);
  833. //     }
  834. // };
  835. // </code>
  836. // See Also:
  837. //       AddRadioButton, SetDefaultRadioButton, NoDefaultRadioButton,
  838. //       GetSelectedRadioButtonId, ClickRadioButton, OnRadioButtonClicked
  839. //-----------------------------------------------------------------------
  840. void EnableRadioButton(int nButtonID, BOOL bEnable = TRUE);
  841. //-----------------------------------------------------------------------
  842. // Summary:
  843. //       Call this member function to indicate whether the progress bar should
  844. //       be displayed in marquee mode or not.
  845. // Parameters:
  846. //       bMarquee - Specifies whether the progress bar should be shown in
  847. //                  Marquee mode. A value of TRUE turns on Marquee mode.
  848. // Remarks:
  849. //       This member function should only be called from a derived class,
  850. //       and only after the task dialog has been initialized.
  851. // Example:
  852. // <code>
  853. // class CProgressDlg : public CXTPTaskDialog
  854. // {
  855. // protected:
  856. //     virtual void OnDialogConstructed()
  857. //     {
  858. //          SetMarqueeProgressBar(TRUE);
  859. //          SetProgressBarState(PBST_NORMAL);
  860. //     }
  861. // };
  862. // </code>
  863. // See Also:
  864. //       ShowProgressBar, SetProgressBarState, SetProgressBarRange,
  865. //       SetProgressBarPos, StartProgressBarMarquee
  866. //-----------------------------------------------------------------------
  867. void SetMarqueeProgressBar(BOOL bMarquee = TRUE);
  868. //-----------------------------------------------------------------------
  869. // Summary:
  870. //       Call this member function to set the current state of the
  871. //       progress bar.
  872. // Parameters:
  873. //       nState - Specifies the bar state. The parameter can be one of the
  874. //                following values:
  875. //
  876. //                * <b>PBST_NORMAL</b> Sets the progress bar to the normal state.
  877. //                * <b>PBST_PAUSE</b> Sets the progress bar to the paused state.
  878. //                * <b>PBST_ERROR</b> Set the progress bar to the error state.
  879. // Remarks:
  880. //       This member function should only be called from a derived class,
  881. //       and only after the task dialog has been initialized.
  882. // Example:
  883. // <code>
  884. // class CProgressDlg : public CXTPTaskDialog
  885. // {
  886. // protected:
  887. //     virtual void OnDialogConstructed()
  888. //     {
  889. //          SetProgressBarPos(25);
  890. //          SetProgressBarRange(0, 100);
  891. //          SetProgressBarState(PBST_PAUSE);
  892. //     }
  893. // };
  894. // </code>
  895. // See Also:
  896. //       SetMarqueeProgressBar, ShowProgressBar, SetProgressBarRange,
  897. //       SetProgressBarPos, StartProgressBarMarquee
  898. //-----------------------------------------------------------------------
  899. void SetProgressBarState(int nState);
  900. //-----------------------------------------------------------------------
  901. // Summary:
  902. //       Call this member function to set the minimum and maximum values
  903. //       for the progress bar.
  904. // Parameters:
  905. //       wMinRange - Minimum range value. By default, the minimum value is zero.
  906. //       wMaxRange - Maximum range value. By default, the maximum value is 100.
  907. // Remarks:
  908. //       This member function should only be called from a derived class,
  909. //       and only after the task dialog has been initialized.
  910. // Example:
  911. // <code>
  912. // class CProgressDlg : public CXTPTaskDialog
  913. // {
  914. // protected:
  915. //     virtual void OnDialogConstructed()
  916. //     {
  917. //          SetProgressBarPos(25);
  918. //          SetProgressBarRange(0, 100);
  919. //          SetProgressBarState(PBST_PAUSE);
  920. //     }
  921. // };
  922. // </code>
  923. // See Also:
  924. //       SetMarqueeProgressBar, SetProgressBarState, ShowProgressBar,
  925. //       SetProgressBarPos, StartProgressBarMarquee
  926. //-----------------------------------------------------------------------
  927. void SetProgressBarRange(WORD wMinRange = 0, WORD wMaxRange = 100);
  928. //-----------------------------------------------------------------------
  929. // Summary:
  930. //       Call this member function to se the current position for the
  931. //       progress bar.
  932. // Parameters:
  933. //       nPosition - Signed integer that becomes the new position.
  934. // Remarks:
  935. //       This member function should only be called from a derived class,
  936. //       and only after the task dialog has been initialized.
  937. // Example:
  938. // <code>
  939. // class CProgressDlg : public CXTPTaskDialog
  940. // {
  941. // protected:
  942. //     virtual void OnDialogConstructed()
  943. //     {
  944. //          SetProgressBarPos(25);
  945. //          SetProgressBarRange(0, 100);
  946. //          SetProgressBarState(PBST_PAUSE);
  947. //     }
  948. // };
  949. // </code>
  950. // See Also:
  951. //       SetMarqueeProgressBar, SetProgressBarState, SetProgressBarRange,
  952. //       ShowProgressBar, StartProgressBarMarquee
  953. //-----------------------------------------------------------------------
  954. void SetProgressBarPos(int nPosition);
  955. //-----------------------------------------------------------------------
  956. // Summary:
  957. //       Similar to SetMarqueeProgressBar, this member function is used to
  958. //       indicate whether the progress bar should be displayed in marquee
  959. //       mode or not with the ability to determine marquee speed as well.
  960. // Parameters:
  961. //       bStartMarquee  - Indicates whether to start marquee.
  962. //       dwMilliSeconds - Indicates the speed of the marquee in milliseconds.
  963. // Remarks:
  964. //       This member function should only be called from a derived class,
  965. //       and only after the task dialog has been initialized.
  966. // Example:
  967. // <code>
  968. // class CProgressDlg : public CXTPTaskDialog
  969. // {
  970. // protected:
  971. //     virtual void OnDialogConstructed()
  972. //     {
  973. //          StartProgressBarMarquee(TRUE, 10);
  974. //          SetProgressBarState(PBST_NORMAL);
  975. //     }
  976. // };
  977. // </code>
  978. // See Also:
  979. //       SetMarqueeProgressBar, SetProgressBarState, SetProgressBarRange,
  980. //       SetProgressBarPos, ShowProgressBar
  981. //-----------------------------------------------------------------------
  982. void StartProgressBarMarquee(BOOL bStartMarquee, DWORD dwMilliSeconds);
  983. //-----------------------------------------------------------------------
  984. // Summary:
  985. //       Call this member function to designate whether a given Task Dialog
  986. //       button or command link should have a User Account Control (UAC)
  987. //       shield icon (whether the action invoked by the button requires
  988. //       elevation).
  989. // Parameters:
  990. //       nButtonID - Indicates ID of the push button or command link to be updated.
  991. //       bRequired - FALSE to designate that the action invoked by the button does
  992. //                   not require elevation; TRUE to designate that the action does
  993. //                   require elevation.
  994. // Remarks:
  995. //       This member function should only be called from a derived class,
  996. //       and only after the task dialog has been initialized.
  997. // Example:
  998. // <code>
  999. // class CElevationDlg : public CXTPTaskDialog
  1000. // {
  1001. // protected:
  1002. //     void OnButtonClicked(int nButtonID, BOOL& bCloseDialog)
  1003. //     {
  1004. //          switch (nButtonID)
  1005. //          {
  1006. //          case IDOK:
  1007. //              SetButtonElevationRequired(nButtonID, TRUE);
  1008. //              bCloseDialog = FALSE;
  1009. //              break;
  1010. //          case IDCANCEL:
  1011. //              SetButtonElevationRequired(nButtonID, FALSE);
  1012. //              bCloseDialog = TRUE;
  1013. //              break;
  1014. //          }
  1015. //     }
  1016. // };
  1017. // </code>
  1018. // See Also:
  1019. //       AddButton, EnableCommandLinks, SetDefaultButton, SetCommonButtons,
  1020. //       GetSelectedButtonId, ClickButton, EnableButton, OnButtonClicked
  1021. //-----------------------------------------------------------------------
  1022. void SetButtonElevationRequired(int nButtonID, BOOL bRequired = TRUE);
  1023. //-----------------------------------------------------------------------
  1024. // Summary:
  1025. //       This member function is used to simulate a wizard style task dialog.
  1026. //       By using multiple CXTPTaskDialog objects that define the aspects
  1027. //       of each page, you can incorporate Back and Next buttons that can
  1028. //       be used to update the appearance and behavior of the task dialog.
  1029. // Parameters:
  1030. //       taskDlg - Reference to a CXTPTaskDialog object that contains
  1031. //                 attributes for the appearance and behavior of the new
  1032. //                 task page.
  1033. // Remarks:
  1034. //       This member function should only be called from a derived class,
  1035. //       and only after the task dialog has been initialized.
  1036. // Example:
  1037. // <code>
  1038. // class CNavigateDlg : public CXTPTaskDialog
  1039. // {
  1040. //     CXTPTaskDialog m_dlgBack;
  1041. //     CXTPTaskDialog m_dlgNext;
  1042. // protected:
  1043. //     void OnButtonClicked(int nButtonID, BOOL& bCloseDialog)
  1044. //     {
  1045. //          switch (nButtonID)
  1046. //          {
  1047. //          case IDBACK:
  1048. //              NavigatePage(m_dlgBack);
  1049. //              bCloseDialog = FALSE;
  1050. //              break;
  1051. //          case IDNEXT:
  1052. //              NavigatePage(m_dlgNext);
  1053. //              bCloseDialog = FALSE;
  1054. //              break;
  1055. //          }
  1056. //     }
  1057. // };
  1058. // </code>
  1059. // See Also:
  1060. //     OnNavigated
  1061. //-----------------------------------------------------------------------
  1062. void NavigatePage(CXTPTaskDialog& taskDlg);
  1063. //-----------------------------------------------------------------------
  1064. // Summary:
  1065. //       Call this member function to reset the configuration attributes for
  1066. //       the task dialog to the default state.
  1067. //-----------------------------------------------------------------------
  1068. void ResetContent();
  1069. //-----------------------------------------------------------------------
  1070. // Summary:
  1071. //       Call this method to show thed dialog even if standard window theme used
  1072. //-----------------------------------------------------------------------
  1073. void EnableMessageBoxStyle(BOOL bEnable = TRUE);
  1074. //-----------------------------------------------------------------------
  1075. // Summary:
  1076. //       Call this method to create dialog from XML resource.
  1077. // Parameters:
  1078. //       hInstance   - Instance of resources
  1079. //       nIDResource - Resource identifier
  1080. //       lpszDialog  - Dialog xml section
  1081. //       rglpsz      - Array of strings that will be replaced in XML strings
  1082. //       nString     - Number of parameter strings
  1083. //-----------------------------------------------------------------------
  1084. BOOL CreateFromResource(UINT nIDResource, LPCTSTR lpszDialog);
  1085. BOOL CreateFromResource(HINSTANCE hInstance, UINT nIDResource, LPCTSTR lpszDialog); //<COMBINE CXTPTaskDialog::CreateFromResource@UINT@LPCTSTR>
  1086. BOOL CreateFromResourceParam(HINSTANCE hInstance, UINT nIDResource, LPCTSTR lpszDialog, LPCTSTR const* rglpsz, int nString);    //<COMBINE CXTPTaskDialog::CreateFromResource@UINT@LPCTSTR>
  1087. BOOL CreateFromResourceParam(CXTPPropExchangeXMLNode* pPX, LPCTSTR const* rglpsz, int nString);     //<COMBINE CXTPTaskDialog::CreateFromResource@UINT@LPCTSTR>
  1088. protected:
  1089. //-----------------------------------------------------------------------
  1090. // Summary:
  1091. //       This notification is sent by the Task Dialog once the task dialog
  1092. //       has been created and before it is displayed.
  1093. // See Also:
  1094. //       SetWidth, EnableCancellation, EnableRelativePosition,
  1095. //       EnableRtlLayout, EnableMinimize, SetWindowTitle
  1096. //-----------------------------------------------------------------------
  1097. virtual void OnDialogConstructed();
  1098. //-----------------------------------------------------------------------
  1099. // Summary:
  1100. //       This notification is sent by the Task Dialog once the task dialog
  1101. //       has been destroyed.
  1102. // See Also:
  1103. //       OnDialogConstructed
  1104. //-----------------------------------------------------------------------
  1105. virtual void OnDialogDestroyed();
  1106. //-----------------------------------------------------------------------
  1107. // Summary:
  1108. //       This notification is sent by the Task Dialog when a user clicks
  1109. //       on a hyperlink in the Task Dialog's content
  1110. // Parameters:
  1111. //       pszURL - Pointer to a wide-character string containing the URL
  1112. //                of the hyperlink.
  1113. // See Also:
  1114. //       SetContent, SetExpandedInformation, SetFooter, EnableHyperlinks
  1115. //-----------------------------------------------------------------------
  1116. virtual void OnHyperlinkClicked(LPCTSTR pszURL);
  1117. //-----------------------------------------------------------------------
  1118. // Summary:
  1119. //       This notification is sent by the Task Dialog when a user selects
  1120. //       a button or command link in the task dialog.
  1121. // Parameters:
  1122. //       nButtonID    - The ID corresponding to the button selected.
  1123. //       bCloseDialog - Set to TRUE if the task dialog should close.
  1124. // See Also:
  1125. //       AddButton, EnableCommandLinks, SetDefaultButton, SetCommonButtons,
  1126. //       GetSelectedButtonId, ClickButton, EnableButton, SetButtonElevationRequired
  1127. //-----------------------------------------------------------------------
  1128. virtual void OnButtonClicked(int nButtonID, BOOL& bCloseDialog);
  1129. //-----------------------------------------------------------------------
  1130. // Summary:
  1131. //       This notification is sent by the Task Dialog when a user selects
  1132. //       a radio button in the task dialog.
  1133. // Parameters:
  1134. //       nButtonID    - The ID corresponding to the radio button that was clicked.
  1135. // See Also:
  1136. //       AddRadioButton, SetDefaultRadioButton, NoDefaultRadioButton,
  1137. //       GetSelectedRadioButtonId, ClickRadioButton, EnableRadioButton
  1138. //-----------------------------------------------------------------------
  1139. virtual void OnRadioButtonClicked(int nButtonID);
  1140. //-----------------------------------------------------------------------
  1141. // Summary:
  1142. //       This notification is sent by the Task Dialog when the user clicks
  1143. //       on the task dialog's verification check box.
  1144. // Parameters:
  1145. //       bChecked - TRUE if the verification checkbox is checked, otherwise FALSE.
  1146. // See Also:
  1147. //       SetVerificationText, SetVerifyCheckState, IsVerificiationChecked,
  1148. //       ClickVerification
  1149. //-----------------------------------------------------------------------
  1150. virtual void OnVerificationClicked(BOOL bChecked);
  1151. //-----------------------------------------------------------------------
  1152. // Summary:
  1153. //       This notification is sent by the Task Dialog when the user presses
  1154. //       F1 on the keyboard while the dialog has focus.
  1155. //-----------------------------------------------------------------------
  1156. virtual void OnHelp();
  1157. //-----------------------------------------------------------------------
  1158. // Summary:
  1159. //       This notification is sent by the Task Dialog when the user clicks
  1160. //       on an expando in the Task Dialog.
  1161. // Parameters:
  1162. //       bExpanded - TRUE if the dialog is expanded, otherwise FALSE.
  1163. // See Also:
  1164. //       SetCollapsedControlText, SetExpandedInformation, ExpandedByDefault,
  1165. //       ExpandFooterArea, SetExpandedControlText
  1166. //-----------------------------------------------------------------------
  1167. virtual void OnExpandoButtonClicked(BOOL bExpanded);
  1168. //-----------------------------------------------------------------------
  1169. // Summary:
  1170. //       This notification is sent by the Task Dialog approximately every
  1171. //       200 milliseconds when the EnableCallbackTimer member function has
  1172. //       been called.
  1173. // Parameters:
  1174. //       dwMilliSeconds - Number of milliseconds since the dialog was created
  1175. //                        or bReset was set to TRUE.
  1176. //       bReset         - TRUE to reset the tickcount, otherwise the tickcount
  1177. //                        will continue to increment.
  1178. // See Also:
  1179. //       EnableCallbackTimer, ModifyTaskStyle
  1180. //-----------------------------------------------------------------------
  1181. virtual void OnTimer(DWORD dwMilliSeconds, BOOL& bReset);
  1182. //-----------------------------------------------------------------------
  1183. // Summary:
  1184. //       This notification is sent by the Task Dialog when a navigation
  1185. //       has occurred.
  1186. // See Also:
  1187. //       NavigatePage
  1188. //-----------------------------------------------------------------------
  1189. virtual void OnNavigated();
  1190. virtual HRESULT OnDialogNotify(UINT uNotification, WPARAM wParam, LPARAM lParam);
  1191. protected:
  1192. int                                          m_nSelButtonID;      // ID of the button that was selected when the task dialog was closed.
  1193. HWND                                         m_hwndTaskDialog;              //
  1194. TASKDIALOGCONFIG                             m_config;            // Structure contains information used to display a task dialog
  1195. CArray<TASKDIALOG_BUTTON,TASKDIALOG_BUTTON&> m_arrButtons;         // Array of TASKDIALOG_BUTTON structures containing the definition of the custom buttons that are to be displayed in the dialog.
  1196. CArray<TASKDIALOG_BUTTON,TASKDIALOG_BUTTON&> m_arrRadioButtons;    // Array of TASKDIALOG_BUTTON structures containing the definition of the custom radio buttons that are to be displayed in the dialog.
  1197. private:
  1198. BOOL OnAttach(HWND hWndNew);
  1199. HWND OnDetach();
  1200. static HRESULT CALLBACK TaskDialogCallbackProc(
  1201. HWND hwnd,
  1202. UINT uNotification,
  1203. WPARAM wParam,
  1204. LPARAM lParam,
  1205. DWORD_PTR dwRefData);
  1206. };
  1207. AFX_INLINE void CXTPTaskDialog::OnDialogConstructed() {
  1208. }
  1209. AFX_INLINE void CXTPTaskDialog::OnDialogDestroyed() {
  1210. }
  1211. AFX_INLINE void CXTPTaskDialog::OnHyperlinkClicked(LPCTSTR pszURL) {
  1212. UNREFERENCED_PARAMETER(pszURL);
  1213. }
  1214. AFX_INLINE void CXTPTaskDialog::OnButtonClicked(int nButtonID, BOOL& bCloseDialog) {
  1215. UNREFERENCED_PARAMETER(nButtonID); bCloseDialog = TRUE;
  1216. }
  1217. AFX_INLINE void CXTPTaskDialog::OnRadioButtonClicked(int nButtonID) {
  1218. UNREFERENCED_PARAMETER(nButtonID);
  1219. }
  1220. AFX_INLINE void CXTPTaskDialog::OnVerificationClicked(BOOL bChecked) {
  1221. UNREFERENCED_PARAMETER(bChecked);
  1222. }
  1223. AFX_INLINE void CXTPTaskDialog::OnHelp() {
  1224. }
  1225. AFX_INLINE void CXTPTaskDialog::OnExpandoButtonClicked(BOOL bExpanded) {
  1226. UNREFERENCED_PARAMETER(bExpanded);
  1227. }
  1228. AFX_INLINE void CXTPTaskDialog::OnTimer(DWORD dwMilliSeconds, BOOL& bReset) {
  1229. UNREFERENCED_PARAMETER(dwMilliSeconds); UNREFERENCED_PARAMETER(bReset);
  1230. }
  1231. AFX_INLINE void CXTPTaskDialog::OnNavigated() {
  1232. }
  1233. AFX_INLINE int CXTPTaskDialog::GetSelectedButtonId() const {
  1234. return m_nSelButtonID;
  1235. }
  1236. AFX_INLINE int CXTPTaskDialog::GetSelectedRadioButtonId() const {
  1237. return m_nSelRadioButtonID;
  1238. }
  1239. AFX_INLINE BOOL CXTPTaskDialog::IsVerificiationChecked() const {
  1240. return m_bVerification;
  1241. }
  1242. AFX_INLINE void CXTPTaskDialog::ClickButton(int nButtonID) {
  1243. ASSERT(::IsWindow(m_hwndTaskDialog)); ::SendMessage(m_hwndTaskDialog, TDM_CLICK_BUTTON, nButtonID, 0);
  1244. }
  1245. AFX_INLINE void CXTPTaskDialog::ClickRadioButton(int nButtonID) {
  1246. ASSERT(::IsWindow(m_hwndTaskDialog)); ::SendMessage(m_hwndTaskDialog, TDM_CLICK_RADIO_BUTTON, nButtonID, 0);
  1247. }
  1248. AFX_INLINE void CXTPTaskDialog::ClickVerification(BOOL bChecked, BOOL bSetKeyFocus) {
  1249. ASSERT(::IsWindow(m_hwndTaskDialog)); ::SendMessage(m_hwndTaskDialog, TDM_CLICK_VERIFICATION, bChecked, bSetKeyFocus);
  1250. }
  1251. AFX_INLINE void CXTPTaskDialog::EnableButton(int nButtonID, BOOL bEnable) {
  1252. ASSERT(::IsWindow(m_hwndTaskDialog)); ::SendMessage(m_hwndTaskDialog, TDM_ENABLE_BUTTON, nButtonID, bEnable);
  1253. }
  1254. AFX_INLINE void CXTPTaskDialog::EnableRadioButton(int nButtonID, BOOL bEnable) {
  1255. ASSERT(::IsWindow(m_hwndTaskDialog)); ::SendMessage(m_hwndTaskDialog, TDM_ENABLE_RADIO_BUTTON, nButtonID, bEnable);
  1256. }
  1257. AFX_INLINE void CXTPTaskDialog::SetMarqueeProgressBar(BOOL bMarquee) {
  1258. ASSERT(::IsWindow(m_hwndTaskDialog)); ::SendMessage(m_hwndTaskDialog, TDM_SET_MARQUEE_PROGRESS_BAR, bMarquee, 0);
  1259. }
  1260. AFX_INLINE void CXTPTaskDialog::StartProgressBarMarquee(BOOL bStartMarquee, DWORD dwMilliSeconds) {
  1261. ASSERT(::IsWindow(m_hwndTaskDialog)); ::SendMessage(m_hwndTaskDialog, TDM_SET_PROGRESS_BAR_MARQUEE, bStartMarquee, dwMilliSeconds);
  1262. }
  1263. AFX_INLINE void CXTPTaskDialog::SetProgressBarState(int nState) {
  1264. ASSERT(::IsWindow(m_hwndTaskDialog)); ::SendMessage(m_hwndTaskDialog, TDM_SET_PROGRESS_BAR_STATE, nState, 0);
  1265. }
  1266. AFX_INLINE void CXTPTaskDialog::SetProgressBarPos(int nPosition) {
  1267. ASSERT(::IsWindow(m_hwndTaskDialog)); ::SendMessage(m_hwndTaskDialog, TDM_SET_PROGRESS_BAR_POS, nPosition, 0);
  1268. }
  1269. AFX_INLINE void CXTPTaskDialog::SetProgressBarRange(WORD wMinRange, WORD wMaxRange) {
  1270. ASSERT(::IsWindow(m_hwndTaskDialog)); ::SendMessage(m_hwndTaskDialog, TDM_SET_PROGRESS_BAR_RANGE, 0, MAKELPARAM(wMinRange, wMaxRange));
  1271. }
  1272. AFX_INLINE void CXTPTaskDialog::SetButtonElevationRequired(int nButtonID, BOOL bRequired) {
  1273. ASSERT(::IsWindow(m_hwndTaskDialog)); ::SendMessage(m_hwndTaskDialog, TDM_SET_BUTTON_ELEVATION_REQUIRED_STATE, nButtonID, bRequired);
  1274. }
  1275. AFX_INLINE void CXTPTaskDialog::NavigatePage(CXTPTaskDialog& taskDlg) {
  1276. ASSERT(::IsWindow(m_hwndTaskDialog)); ::SendMessage(m_hwndTaskDialog, TDM_NAVIGATE_PAGE, 0, (LPARAM)&taskDlg.m_config);
  1277. }
  1278. AFX_INLINE void CXTPTaskDialog::SetUseSysIcons(BOOL bUseSysIcons) {
  1279. m_bUseSysIcons = bUseSysIcons;
  1280. }
  1281. AFX_INLINE void CXTPTaskDialog::EnableMessageBoxStyle(BOOL bEnable) {
  1282. m_bMessageBoxStyle = bEnable;
  1283. }
  1284. /////////////////////////////////////////////////////////////////////////////
  1285. //{{AFX_INSERT_LOCATION}}
  1286. // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
  1287. #endif // !defined(__XTPTASKDIALOG_H__)