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

对话框与窗口

开发平台:

Visual C++

  1. // XTDateTimeCtrl.h interface for the CXTDateTimeCtrl class.
  2. //
  3. // This file is a part of the XTREME CONTROLS 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(__XTDATETIMECTRL_H__)
  22. #define __XTDATETIMECTRL_H__
  23. //}}AFX_CODEJOCK_PRIVATE
  24. #if _MSC_VER > 1000
  25. #pragma once
  26. #endif // _MSC_VER > 1000
  27. // class forwards
  28. class CXTMonthCalCtrl;
  29. //===========================================================================
  30. // Summary:
  31. //     CXTDateTimeCtrl is a CWnd derived class. A CXTDateTimeCtrl object encapsulates
  32. //     the functionality of a date and time picker control.
  33. // Remarks:
  34. //     The date and time picker control (DTP control) provides a simple interface to exchange
  35. //     date and time information with a user. This interface contains fields, and
  36. //     each field displays a part of the date and time information stored
  37. //     in the control. The user can change the information stored in the control
  38. //     by changing the content of the string in a given field. The user can
  39. //     also move from field to field using the mouse or the keyboard.
  40. //
  41. //     You can customize the date and time picker control by applying a variety
  42. //     of styles to the object when you create it. See Date and Time Picker
  43. //     Control Styles in the Platform SDK for more information about styles
  44. //     specific to the date and time picker control. You can set the display
  45. //     format of the DTP control using format styles. These format styles
  46. //     are described in Preset DTP Display Formats in the Platform SDK.
  47. //
  48. //     The date and time picker control also uses notifications and callbacks,
  49. //     which are described in Using CXTDateTimeCtrl in the Xtreme Toolkit online
  50. //     help.
  51. //===========================================================================
  52. class _XTP_EXT_CLASS CXTDateTimeCtrl : public CWnd
  53. {
  54. DECLARE_DYNAMIC(CXTDateTimeCtrl)
  55. public:
  56. //-----------------------------------------------------------------------
  57. // Summary:
  58. //     Constructs a CXTDateTimeCtrl object
  59. //-----------------------------------------------------------------------
  60. CXTDateTimeCtrl();
  61. //-----------------------------------------------------------------------
  62. // Summary:
  63. //     Destroys a CXTDateTimeCtrl object, handles cleanup and deallocation
  64. //-----------------------------------------------------------------------
  65. virtual ~CXTDateTimeCtrl();
  66. public:
  67. //-----------------------------------------------------------------------
  68. // Summary:
  69. //     This member function creates the date and time picker control and
  70. //     attaches it to the CXTDateTimeCtrl object.
  71. // Parameters:
  72. //     dwStyle    - Specifies the combination of date time control
  73. //                  styles. See Date and Time Picker Control Styles
  74. //                  in the Platform SDK for more information about
  75. //                  date and time picker styles.
  76. //     rect       - A reference to a RECT structure, which is the
  77. //                  position and size of the date and time picker control.
  78. //     pParentWnd - A pointer to a CWnd object that is the parent
  79. //                  window of the date and time picker control. It
  80. //                  must not be NULL.
  81. //     nID        - Specifies the control ID of the date and time picker
  82. //                  control.
  83. // Returns:
  84. //     Nonzero if creation was successful, otherwise returns 0.
  85. //-----------------------------------------------------------------------
  86. BOOL Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID);
  87. //-----------------------------------------------------------------------
  88. // Summary:
  89. //     This member function retrieves the color for a given portion of
  90. //     the month calendar within the date and time picker control.
  91. // Parameters:
  92. //     iColor - An int value specifying which color area of the month
  93. //              calendar to retrieve. For a list of values, see the
  94. //              'iColor' parameter for SetMonthCalColor.
  95. // Returns:
  96. //     A COLORREF value that represents the color setting for the specified
  97. //     portion of the month calendar control if successful. The function
  98. //     returns -1 if unsuccessful.
  99. //-----------------------------------------------------------------------
  100. COLORREF GetMonthCalColor(int iColor) const;
  101. // ------------------------------------------------------------------------------
  102. // Summary:
  103. //     This member function sets the color for a given portion of the
  104. //     month calendar within a date and time picker control.
  105. // Parameters:
  106. //     iColor -  An int value specifying which area of the month calendar control
  107. //               to set. This value can be one of the values listed in the
  108. //               remarks section.
  109. // ref -     A RGB value representing the color that will be set for the
  110. //               specified area of the month calendar.
  111. // Remarks:
  112. //     The area of the calendar control that the color is to be set for
  113. //     can be one of the following values:
  114. //     * <b>MCSC_BACKGROUND</b> Set the background color displayed between
  115. //           months.
  116. //     * <b>MCSC_MONTHBK</b> Set the background color displayed within
  117. //           a month.
  118. //     * <b>MCSC_TEXT</b> Set the color used to display text within a
  119. //           month.
  120. //     * <b>MCSC_TITLEBK</b> Set the background color displayed in
  121. //           the calendar's title.
  122. //     * <b>MCSC_TITLETEXT</b> Set the color used to display text within
  123. //           the calendar's title.
  124. //     * <b>MCSC_TRAILINGTEXT</b> Set the color used to display header
  125. //           and trailing-day text. Header and trailing days are the days from
  126. //           the previous and following months that appear on the current
  127. //           calendar.
  128. // Returns:
  129. //     A COLORREF value that represents the previous color setting for
  130. //     the specified portion of the month calendar control if successful.
  131. //     Otherwise, the message returns -1.
  132. // ------------------------------------------------------------------------------
  133. COLORREF SetMonthCalColor(int iColor, COLORREF ref);
  134. //-----------------------------------------------------------------------
  135. // Summary:
  136. //     This member function sets the display of a date and time picker
  137. //     control based on a given format string.
  138. // Parameters:
  139. //     pstrFormat - A pointer to a zero-terminated format string that
  140. //                  defines the desired display. Setting this parameter
  141. //                  to NULL will reset the control to the default format
  142. //                  string for the current style.
  143. // Returns:
  144. //     Nonzero if successful, otherwise returns zero.
  145. //-----------------------------------------------------------------------
  146. BOOL SetFormat(LPCTSTR pstrFormat);
  147. //-----------------------------------------------------------------------
  148. // Summary:
  149. //     This member function retrieves the date and time picker's child
  150. //     month calendar control.
  151. // Returns:
  152. //     A pointer to a DDX_XTMonthCalCtrl object;
  153. //     or NULL if unsuccessful or the window is not visible.
  154. //-----------------------------------------------------------------------
  155. CXTMonthCalCtrl* GetMonthCalCtrl() const;
  156. //-----------------------------------------------------------------------
  157. // Summary:
  158. //     This member function retrieves the font currently used by the date
  159. //     and time picker control's child month calendar control.
  160. // Parameters:
  161. //     hFont   - Handle to the font that will be set.
  162. //     bRedraw - Specifies whether or not the control should be redrawn
  163. //               immediately upon setting the font. Setting this
  164. //               parameter to TRUE causes the control to redraw itself.
  165. // Returns:
  166. //     A pointer to a CFont object, or returns NULL if unsuccessful.
  167. //-----------------------------------------------------------------------
  168. CFont* GetMonthCalFont() const;
  169. // -----------------------------------------------------------------------
  170. // Summary:
  171. //     This member function sets the font to be used by the date and time
  172. //     picker control's child month calendar control.
  173. // Parameters:
  174. //     hFont :    Handle to a HFONT object that represents the new font to
  175. //                use.
  176. // bRedraw :  TRUE to redraw the CXTDateTimeCtrl object.
  177. // -----------------------------------------------------------------------
  178. void SetMonthCalFont(HFONT hFont, BOOL bRedraw = TRUE);
  179. //-----------------------------------------------------------------------
  180. // Summary:
  181. //     This member function sets the minimum and maximum allowable system
  182. //     times for a date and time picker control.
  183. // Parameters:
  184. //     pMinRange - A pointer to a CTime or COleDateTime object containing the
  185. //                 earliest time allowed in the CXTDateTimeCtrl object.
  186. //     pMaxRange - A pointer to a CTime or COleDateTime object containing the
  187. //                 latest time allowed in the CXTDateTimeCtrl object.
  188. // Returns:
  189. //     Nonzero if successful, otherwise returns zero.
  190. //-----------------------------------------------------------------------
  191. BOOL SetRange(const COleDateTime* pMinRange, const COleDateTime* pMaxRange);
  192. BOOL SetRange(const CTime* pMinRange, const CTime* pMaxRange); //<combine CXTDateTimeCtrl::SetRange@const COleDateTime*@const COleDateTime*>
  193. //-----------------------------------------------------------------------
  194. // Summary:
  195. //     This member function retrieves the current minimum and maximum allowable
  196. //     system times for a date and time picker control.
  197. // Parameters:
  198. //     pMinRange - A pointer to a COleDateTime or CTime object containing the earliest
  199. //                 time allowed in the CXTDateTimeCtrl object.
  200. //     pMaxRange - A pointer to a COleDateTime or CTime object containing the latest
  201. //                 time allowed in the CXTDateTimeCtrl object.
  202. // Returns:
  203. //     A DWORD value containing flags that indicate which ranges are set.
  204. //-----------------------------------------------------------------------
  205. DWORD GetRange(COleDateTime* pMinRange, COleDateTime* pMaxRange) const;
  206. DWORD GetRange(CTime* pMinRange, CTime* pMaxRange) const; //<combine CXTDateTimeCtrl::GetRange@COleDateTime*@COleDateTime*@const>
  207. //-----------------------------------------------------------------------
  208. // Summary:
  209. //     This member function sets the time in a date and time picker control.
  210. // Parameters:
  211. //     pTimeNew - A pointer to a CTime or SYSTEMTIME object containing the time that
  212. //                the control will be set to.
  213. //     timeNew - A reference to a COleDateTime object containing the
  214. //               time that the control will be set to.
  215. // Returns:
  216. //     Nonzero if successful, otherwise returns zero.
  217. //-----------------------------------------------------------------------
  218. BOOL SetTime(const CTime* pTimeNew);
  219. BOOL SetTime(const COleDateTime& timeNew); //<combine CXTDateTimeCtrl::SetTime@const CTime*>
  220. BOOL SetTime(LPSYSTEMTIME pTimeNew = NULL); //<combine CXTDateTimeCtrl::SetTime@const CTime*>
  221. //-----------------------------------------------------------------------
  222. // Summary:
  223. //     This member function retrieves the currently selected time from
  224. //     a date and time picker control and places it in a specified SYSTEMTIME
  225. //     structure.
  226. // Parameters:
  227. //     timeDest - A reference to a CTime or COleDateTime object that will receive
  228. //                the system time information.
  229. //     pTimeDest - A pointer to the SYSTEMTIME structure to receive
  230. //                 the system time information. Must not be NULL.
  231. // Returns:
  232. //     In the first version nonzero if the time is successfully written to the
  233. //     COleDateTime object, otherwise returns zero. In the second and third version
  234. //     a DWORD value equal to the dwFlag member set in the NMDATETIMECHANGE
  235. //     structure.
  236. //-----------------------------------------------------------------------
  237. BOOL GetTime(COleDateTime& timeDest) const;
  238. DWORD GetTime(CTime& timeDest) const; //<combine CXTDateTimeCtrl::GetTime@COleDateTime&@const>
  239. DWORD GetTime(LPSYSTEMTIME pTimeDest) const; //<combine CXTDateTimeCtrl::GetTime@COleDateTime&@const>
  240. private:
  241. BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext = NULL);
  242. };
  243. //////////////////////////////////////////////////////////////////////
  244. AFX_INLINE CXTDateTimeCtrl::CXTDateTimeCtrl() {
  245. }
  246. AFX_INLINE BOOL CXTDateTimeCtrl::Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext) {
  247. return CWnd::Create(lpszClassName, lpszWindowName, dwStyle, rect, pParentWnd, nID, pContext);
  248. }
  249. AFX_INLINE CFont* CXTDateTimeCtrl::GetMonthCalFont() const {
  250. ASSERT(::IsWindow(m_hWnd)); return CFont::FromHandle((HFONT) ::SendMessage(m_hWnd, DTM_GETMCFONT, 0, 0));
  251. }
  252. AFX_INLINE CXTMonthCalCtrl* CXTDateTimeCtrl::GetMonthCalCtrl() const {
  253. ASSERT(::IsWindow(m_hWnd)); return (CXTMonthCalCtrl*) CWnd::FromHandle((HWND) ::SendMessage(m_hWnd, DTM_GETMONTHCAL, 0, 0));
  254. }
  255. AFX_INLINE void CXTDateTimeCtrl::SetMonthCalFont(HFONT hFont, BOOL bRedraw) {
  256. ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, DTM_SETMCFONT, (WPARAM) hFont, MAKELONG(bRedraw, 0));
  257. }
  258. AFX_INLINE COLORREF CXTDateTimeCtrl::SetMonthCalColor(int iColor, COLORREF ref) {
  259. ASSERT(::IsWindow(m_hWnd)); return (COLORREF) ::SendMessage(m_hWnd, DTM_SETMCCOLOR, (WPARAM) iColor, (LPARAM) ref);
  260. }
  261. AFX_INLINE DWORD CXTDateTimeCtrl::GetTime(LPSYSTEMTIME pTimeDest) const {
  262. ASSERT(::IsWindow(m_hWnd)); ASSERT(pTimeDest != NULL); return (DWORD) ::SendMessage(m_hWnd, DTM_GETSYSTEMTIME, 0, (LPARAM) pTimeDest);
  263. }
  264. AFX_INLINE COLORREF CXTDateTimeCtrl::GetMonthCalColor(int iColor) const {
  265. ASSERT(::IsWindow(m_hWnd)); return (COLORREF) ::SendMessage(m_hWnd, DTM_GETMCCOLOR, (WPARAM) iColor, 0);
  266. }
  267. AFX_INLINE BOOL CXTDateTimeCtrl::SetFormat(LPCTSTR pstrFormat) {
  268. ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, DTM_SETFORMAT, 0, (LPARAM) pstrFormat);
  269. }
  270. // ----------------------------------------------------------------------------
  271. // Summary:
  272. //     The DDX_XTDateTimeCtrl function manages the transfer of
  273. //     date and/or time data between a date and time picker control
  274. //     (CXTDateTimeCtrl) in a dialog box or form view object and a
  275. //     COleDateTime data member of the dialog box or form view object.
  276. //
  277. //     When DDX_XTDateTimeCtrl is called, <i>'value'</i> is set to
  278. //     the current state of the date and time picker control, or the
  279. //     control is set to <i>'value'</i>, depending on the direction of
  280. //     the exchange.
  281. // Parameters:
  282. //     pDX -    A pointer to a CDataExchange object. The framework supplies
  283. //              this object to establish the context of the data exchange,
  284. //              including its direction. You do not need to delete this object.
  285. //     nIDC -   The resource ID of the date and time picker control associated
  286. //              with the member variable.
  287. //     value -  A reference to a COleDateTime member variable, dialog box, form
  288. //              view, or control view object with which data is exchanged.
  289. // See Also:
  290. //     CXTDateTimeCtrl
  291. // ----------------------------------------------------------------------------
  292. _XTP_EXT_CLASS void AFXAPI DDX_XTDateTimeCtrl(CDataExchange* pDX, int nIDC, COleDateTime& value);
  293. // ----------------------------------------------------------------------------
  294. // Summary:
  295. //     The DDX_XTDateTimeCtrl function manages the transfer of
  296. //     date and/or time data between a date and time picker control
  297. //     (CXTDateTimeCtrl) in a dialog box or form view object, and a CTime
  298. //     data member of the dialog box or form view object.
  299. //
  300. //     When DDX_XTDateTimeCtrl is called, <i>'value'</i> is set to
  301. //     the current state of the date and time picker control, or the
  302. //     control is set to <i>'value'</i>, depending on the direction of
  303. //     the exchange.
  304. // Parameters:
  305. //     pDX -    A pointer to a CDataExchange object. The framework supplies
  306. //              this object to establish the context of the data exchange,
  307. //              including its direction. You do not need to delete this object.
  308. //     nIDC -   The resource ID of the date and time picker control associated
  309. //              with the member variable.
  310. //     value -  A reference to a CTime member variable, dialog box, form view,
  311. //              or control view object with which data is exchanged.
  312. // See Also:
  313. //     CXTDateTimeCtrl
  314. // ----------------------------------------------------------------------------
  315. _XTP_EXT_CLASS void AFXAPI DDX_XTDateTimeCtrl(CDataExchange* pDX, int nIDC, CTime& value);
  316. // ----------------------------------------------------------------------------
  317. // Summary:
  318. //     Call DDV_XTMinMaxDateTime to verify that the time/date
  319. //     value in the date and time picker control (CXTDateTimeCtrl)
  320. //     associated with <i>'refValue'</i> falls between <i>'pMinRange'</i>
  321. //     and <i>'pMaxRange'</i>.
  322. // Parameters:
  323. //     pDX -        A pointer to a CDataExchange object. The framework supplies
  324. //                  this object to establish the context of the data exchange,
  325. //                  including its direction. You do not need to delete this
  326. //                  object.
  327. //     refValue -   A reference to a CTime object associated with a member
  328. //                  variable of the dialog box, form view, or control view
  329. //                  object. This object contains the data to be validated.
  330. //     pMinRange -  Minimum date/time value allowed.
  331. //     pMaxRange -  Maximum date/time value allowed.
  332. // See Also:
  333. //     CXTDateTimeCtrl
  334. // ----------------------------------------------------------------------------
  335. _XTP_EXT_CLASS void AFXAPI DDV_XTMinMaxDateTime(CDataExchange* pDX, CTime& refValue, const CTime* pMinRange, const CTime* pMaxRange);
  336. // ----------------------------------------------------------------------------
  337. // Summary:
  338. //     Call DDV_XTMinMaxDateTime to verify that the time/date
  339. //     value in the date and time picker control (CXTDateTimeCtrl)
  340. //     associated with <i>'refValue'</i> falls between <i>'pMinRange'</i>
  341. //     and <i>'pMaxRange'</i>.
  342. // Parameters:
  343. //     pDX -        A pointer to a CDataExchange object. The framework supplies
  344. //                  this object to establish the context of the data exchange,
  345. //                  including its direction. You do not need to delete this
  346. //                  object.
  347. //     refValue -   A reference to a COleDateTime object associated with a
  348. //                  member variable of the dialog box, form view, or control
  349. //                  view object. This object contains the data to be validated.
  350. //     pMinRange -  Minimum date/time value allowed.
  351. //     pMaxRange -  Maximum date/time value allowed.
  352. // See Also:
  353. //     CXTDateTimeCtrl
  354. // ----------------------------------------------------------------------------
  355. _XTP_EXT_CLASS void AFXAPI DDV_XTMinMaxDateTime(CDataExchange* pDX, COleDateTime& refValue, const COleDateTime* pMinRange, const COleDateTime* pMaxRange);
  356. //===========================================================================
  357. // Summary:
  358. //     CXTMonthCalCtrl is a CWnd derived class. A CXTMonthCalCtrl object encapsulates
  359. //     the functionality of a month calendar control.
  360. // Remarks:
  361. //     The month calendar control provides the user with a simple calendar interface that the user
  362. //     can select a date from. The user can change the display by:
  363. //
  364. //     * Scrolling backward and forward, from month to month.
  365. //     * Clicking the Today text to display the current day (if the MCS_NOTODAY
  366. //     style is not used).
  367. //     * Picking a month or a year from a popup menu.
  368. //
  369. //     You can customize the month calendar control by applying a variety of
  370. //     styles to the object when you create it. These styles are described
  371. //     in Month Calendar Control Styles in the Platform SDK.
  372. //
  373. //     The month calendar control can display more than one month, and it can
  374. //     indicate special days, such as holidays, by bolding the date.
  375. //
  376. //     For more information on using the month calendar control, see Using
  377. //     CXTMonthCalCtrl in the Xtreme Toolkit online help.
  378. //===========================================================================
  379. class _XTP_EXT_CLASS CXTMonthCalCtrl : public CWnd
  380. {
  381. DECLARE_DYNAMIC(CXTMonthCalCtrl)
  382. public:
  383. //-----------------------------------------------------------------------
  384. // Summary:
  385. //     Constructs a CXTMonthCalCtrl object
  386. //-----------------------------------------------------------------------
  387. CXTMonthCalCtrl();
  388. //-----------------------------------------------------------------------
  389. // Summary:
  390. //     Destroys a CXTMonthCalCtrl object, handles cleanup and deallocation
  391. //-----------------------------------------------------------------------
  392. virtual ~CXTMonthCalCtrl();
  393. public:
  394. //-----------------------------------------------------------------------
  395. // Summary:
  396. //     This member function creates a month calendar control and attaches
  397. //     it to the DDX_XTMonthCalCtrl object.
  398. // Parameters:
  399. //     dwStyle    - Specifies the combination of Windows styles applied
  400. //                  to the month calendar control. See Month Calendar
  401. //                  Control Styles in the Platform SDK for more information
  402. //                  about the styles.
  403. //     rect       - A reference to a RECT structure. Contains the position
  404. //                  and size of the month calendar control.
  405. //     pt         - A reference to a POINT structure that identifies
  406. //                  the location of the month calendar control.
  407. //     pParentWnd - A pointer to a CWnd object that is the parent window
  408. //                  of the month calendar control. It must not be NULL.
  409. //     nID        - Specifies the control ID of the month calendar control.
  410. // Returns:
  411. //     Nonzero if initialization was successful, otherwise returns zero.
  412. //-----------------------------------------------------------------------
  413. BOOL Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID);
  414. BOOL Create(DWORD dwStyle, const POINT& pt, CWnd* pParentWnd, UINT nID); //<COMBINE CXTMonthCalCtrl::Create@DWORD@const RECT&@CWnd*@UINT>
  415. //-----------------------------------------------------------------------
  416. // Summary:
  417. //     This member function retrieves the minimum size required to show
  418. //     a full month in a month calendar control.
  419. // Parameters:
  420. //     pRect - A pointer to a RECT structure that will receive
  421. //             bounding rectangle information. This parameter must be a valid
  422. //             address and cannot be NULL.
  423. // Returns:
  424. //     Nonzero and 'lpRect' receives the applicable bounding information. If
  425. //     unsuccessful, this member function returns zero.
  426. //-----------------------------------------------------------------------
  427. BOOL GetMinReqRect(RECT* pRect) const;
  428. //-----------------------------------------------------------------------
  429. // Summary:
  430. //     This member function sets the scroll rate for a month calendar
  431. //     control.
  432. // Parameters:
  433. //     iDelta - The number of months to be set as the control's scroll
  434. //              rate. If this value is zero, the month delta is reset
  435. //              to the default, which is the number of months displayed
  436. //              in the control.
  437. // Returns:
  438. //     The previous scroll rate. If the scroll rate has not been previously
  439. //     set, the return value is zero.
  440. //-----------------------------------------------------------------------
  441. int SetMonthDelta(int iDelta);
  442. //-----------------------------------------------------------------------
  443. // Summary:
  444. //     This member function retrieves the scroll rate for a month calendar
  445. //     control. The scroll rate is the number of months that the control
  446. //     moves its display when the user clicks a scroll button once.
  447. // Returns:
  448. //     An integer value that represents the scroll rate for the month
  449. //     calendar control.
  450. //-----------------------------------------------------------------------
  451. int GetMonthDelta() const;
  452. //-----------------------------------------------------------------------
  453. // Summary:
  454. //     This member function sets the day of the week to be displayed in
  455. //     the leftmost column of the calendar.
  456. // Parameters:
  457. //     iDay   - An integer value representing which day is to be set
  458. //              as the first day of the week. This value must be one
  459. //              of the day numbers. See GetFirstDayOfWeek for a description
  460. //              of the day numbers.
  461. //     lpnOld - A pointer to an integer indicating the first day of
  462. //              the week that was previously set.
  463. // Returns:
  464. //     Nonzero if the previous first day of the week is set to a value other than
  465. //     that of  LOCALE_IFIRSTDAYOFWEEK, which is the day indicated in the control
  466. //     panel setting. Otherwise, this function returns zero.
  467. //-----------------------------------------------------------------------
  468. BOOL SetFirstDayOfWeek(int iDay, int* lpnOld = NULL);
  469. //-----------------------------------------------------------------------
  470. // Summary:
  471. //     This member function gets the first day of the week to be displayed
  472. //     in the leftmost column of the calendar.
  473. // Parameters:
  474. //     pbLocal - A pointer to a BOOL value. If the value is nonzero,
  475. //               the control's setting does not match the setting in
  476. //               the control panel.
  477. // Returns:
  478. //     An integer value that represents the first day of the week.
  479. //     The days of the week are represented by integers, as follows:
  480. // <code>
  481. // Value   Day of the Week
  482. // 0       Monday
  483. // 1       Tuesday
  484. // 2       Wednesday
  485. // 3       Thursday
  486. // 4       Friday
  487. // 5       Saturday
  488. // 6       Sunday
  489. // </code>
  490. //-----------------------------------------------------------------------
  491. int GetFirstDayOfWeek(BOOL* pbLocal = NULL) const;
  492. //-----------------------------------------------------------------------
  493. // Summary:
  494. //     This member function gets the color of a specified area of a month
  495. //     calendar control.
  496. // Parameters:
  497. //     nRegion - The region of the month calendar control from which
  498. //               the color is retrieved. For a list of values, see the
  499. //               'nRegion' parameter of SetColor.
  500. // Returns:
  501. //     A COLORREF value specifying the color associated
  502. //     with the portion of the month calendar control, if successful.
  503. //     Otherwise, this member function returns -1.
  504. //-----------------------------------------------------------------------
  505. COLORREF GetColor(int nRegion) const;
  506. //-----------------------------------------------------------------------
  507. // Summary:
  508. //     This member function sets the color of a specified area of a month
  509. //     calendar control.
  510. // Parameters:
  511. //     nRegion - An integer value specifying which month calendar color
  512. //               to set. See remarks section for a list of values.
  513. //     ref     - A COLORREF value for the new color setting for the specified
  514. //               portion of the month calendar control.
  515. // Remarks:
  516. //     nRegion values can be one of the following:
  517. //          * <b>MCSC_BACKGROUND</b> The background color displayed between
  518. //            months.
  519. //          * <b>MCSC_MONTHBK</b> The background color displayed within
  520. //            the month.
  521. //          * <b>MCSC_TEXT</b> The color used to display text within a month.
  522. //          * <b>MCSC_TITLEBK</b> The background color displayed in the
  523. //            calendar's title.
  524. //          * <b>MCSC_TITLETEXT</b> The color used to display text within
  525. //            the calendar's title.
  526. //          * <b>MCSC_TRAILINGTEXT</b> The color used to display header
  527. //            and trailing-day text. Header and trailing days are the days
  528. //            from the previous and following months that appear on the current
  529. //            calendar.
  530. // Returns:
  531. //     A COLORREF value that represents the previous
  532. //     color setting for the specified portion of the month calendar
  533. //     control, if successful. Otherwise this message returns -1.
  534. //-----------------------------------------------------------------------
  535. COLORREF SetColor(int nRegion, COLORREF ref);
  536. //-----------------------------------------------------------------------
  537. // Summary:
  538. //     This member function repaints the month calendar control to its
  539. //     minimum, one-month size.
  540. // Parameters:
  541. //     bRepaint - Specifies whether the control is to be repainted.
  542. //                By default, TRUE. If FALSE, no repainting occurs.
  543. // Returns:
  544. //     Nonzero if the month calendar control is sized to its minimum, otherwise
  545. //     returns zero.
  546. //-----------------------------------------------------------------------
  547. BOOL SizeMinReq(BOOL bRepaint = TRUE);
  548. //-----------------------------------------------------------------------
  549. // Summary:
  550. //     This member function sets the calendar control to the current day.
  551. // Parameters:
  552. //     refDateTime - A reference to a COleDateTime object that contains
  553. //                   the current date.
  554. //     pDateTime - A pointer to a CTime or SYSTEMTIME object containing the current
  555. //                 date information.
  556. //-----------------------------------------------------------------------
  557. void SetToday(const CTime* pDateTime);
  558. void SetToday(const COleDateTime& refDateTime); //<COMBINE CXTMonthCalCtrl::SetToday@const CTime*>
  559. void SetToday(const LPSYSTEMTIME pDateTime);    //<COMBINE CXTMonthCalCtrl::SetToday@const CTime*>
  560. //-----------------------------------------------------------------------
  561. // Summary:
  562. //     This member function retrieves the date information for the date
  563. //     specified as "today" for a month calendar control.
  564. // Parameters:
  565. //     refTime   - A reference to a CTime or COleDateTime object indicating the current day.
  566. //     pDateTime - A pointer to a SYSTEMTIME structure that
  567. //                 will receive the date information.  This parameter
  568. //                 must be a valid address and cannot be NULL.
  569. // Returns:
  570. //     Nonzero if successful, otherwise returns zero.
  571. //-----------------------------------------------------------------------
  572. BOOL GetToday(CTime& refTime) const;
  573. BOOL GetToday(COleDateTime& refDateTime) const; //<COMBINE CXTMonthCalCtrl::GetToday@CTime&@const>
  574. BOOL GetToday(LPSYSTEMTIME pDateTime) const;    //<COMBINE CXTMonthCalCtrl::GetToday@CTime&@const>
  575. //-----------------------------------------------------------------------
  576. // Summary:
  577. //     This member function retrieves the system time as indicated by the
  578. //     currently selected date.
  579. // Parameters:
  580. //     pDateTime   - A pointer to a SYSTEMTIME structure that will receive
  581. //                   the currently selected date information. This parameter
  582. //                   must be a valid address and cannot be NULL.
  583. //     refDateTime - A reference to a COleDateTime object. It receives the
  584. //                   current time.
  585. //     refTime     - A reference to a CTime object. It receives the
  586. //                   current time.
  587. // Returns:
  588. //     Nonzero if successful, otherwise returns zero.
  589. //-----------------------------------------------------------------------
  590. BOOL GetCurSel(CTime& refTime) const;
  591. BOOL GetCurSel(COleDateTime& refDateTime) const; //<COMBINE CXTMonthCalCtrl::GetCurSel@CTime&@const>
  592. BOOL GetCurSel(LPSYSTEMTIME pDateTime) const;    //<COMBINE CXTMonthCalCtrl::GetCurSel@CTime&@const>
  593. //-----------------------------------------------------------------------
  594. // Summary:
  595. //     This member function sets the currently selected date for a month
  596. //     calendar control.
  597. // Parameters:
  598. //     pDateTime - Pointer to a SYSTEMTIME structure that contains the
  599. //                 date to be set as the current selection.
  600. //     refDateTime - A reference to a CTime or COleDateTime object indicating the
  601. //                   currently selected month calendar control.
  602. // Returns:
  603. //     Nonzero if successful, otherwise returns zero.
  604. //-----------------------------------------------------------------------
  605. BOOL SetCurSel(const CTime& refDateTime);
  606. BOOL SetCurSel(const COleDateTime& refDateTime); //<COMBINE CXTMonthCalCtrl::SetCurSel@const CTime&>
  607. BOOL SetCurSel(const LPSYSTEMTIME pDateTime);    //<COMBINE CXTMonthCalCtrl::SetCurSel@const CTime&>
  608. //-----------------------------------------------------------------------
  609. // Summary:
  610. //     This member function sets the display for days in a month calendar
  611. //     control.
  612. // Parameters:
  613. //     nMonths - Value indicating how many elements are in the array
  614. //               that 'pStates' points to.
  615. //     pStates - A pointer to a MONTHDAYSTATE array of values that define
  616. //               how the month calendar control will draw each day in its
  617. //               display. The MONTHDAYSTATE data type is a bit field, where
  618. //               each bit (1 through 31) represents the state of a day in a
  619. //               month. If a bit is on, the corresponding day will be displayed
  620. //               in bold; otherwise it will be displayed with no emphasis.
  621. // Returns:
  622. //     Nonzero if successful, otherwise returns zero.
  623. //-----------------------------------------------------------------------
  624. BOOL SetDayState(int nMonths, LPMONTHDAYSTATE pStates);
  625. //-----------------------------------------------------------------------
  626. // Summary:
  627. //     This member function sets the maximum number of days that can
  628. //     be selected in a month calendar control.
  629. // Parameters:
  630. //     nMax - Specifies the value that will be set to represent the
  631. //            maximum number of selectable days.
  632. // Returns:
  633. //     Nonzero if successful, otherwise returns zero.
  634. //-----------------------------------------------------------------------
  635. BOOL SetMaxSelCount(int nMax);
  636. //-----------------------------------------------------------------------
  637. // Summary:
  638. //     This member function retrieves the current maximum number of days
  639. //     that can be selected in a month calendar control.
  640. // Returns:
  641. //     An integer value that represents the total number of days that
  642. //     can be selected for the control.
  643. //-----------------------------------------------------------------------
  644. int GetMaxSelCount() const;
  645. //-----------------------------------------------------------------------
  646. // Summary:
  647. //     This member function sets the minimum and maximum allowable dates for a month
  648. //     calendar control.
  649. // Parameters:
  650. //     pMinRange - A pointer to a CTime, COleDateTime or SYSTEMTIME object containing
  651. //                 the date at the lowest end of the range.
  652. //     pMaxRange - A pointer to a CTime, COleDateTime or SYSTEMTIME object containing the
  653. //                 date at the highest end of the range.
  654. // Returns:
  655. //     Nonzero if successful, otherwise returns zero.
  656. //-----------------------------------------------------------------------
  657. BOOL SetRange(const CTime* pMinRange, const CTime* pMaxRange);
  658. BOOL SetRange(const COleDateTime* pMinRange, const COleDateTime* pMaxRange); //<COMBINE CXTMonthCalCtrl::SetRange@const CTime*@const CTime*>
  659. BOOL SetRange(const LPSYSTEMTIME pMinRange, const LPSYSTEMTIME pMaxRange);   //<COMBINE CXTMonthCalCtrl::SetRange@const CTime*@const CTime*>
  660. //-----------------------------------------------------------------------
  661. // Summary:
  662. //     This member function retrieves the current minimum and maximum dates set
  663. //     in a month calendar control.
  664. // Parameters:
  665. //     pMinRange - A pointer to a CTime, COleDateTime or SYSTEMTIME object containing
  666. //                 the date at the lowest end of the range.
  667. //     pMaxRange - A pointer to a CTime, COleDateTime or SYSTEMTIME object containing the
  668. //                 date at the highest end of the range.
  669. // Returns:
  670. //     A DWORD that can be zero (no limits are set) or a combination
  671. //     of the following values that specify limit information:
  672. //
  673. //     * <b>GDTR_MAX</b> A maximum limit is set for the control; pMaxRange
  674. //       is valid and contains the applicable date information.
  675. //     * <b>GDTR_MIN</b> A minimum limit is set for the control; pMinRange
  676. //       is valid and contains the applicable date information.
  677. //
  678. //-----------------------------------------------------------------------
  679. DWORD GetRange(CTime* pMinRange, CTime* pMaxRange) const;
  680. DWORD GetRange(COleDateTime* pMinRange, COleDateTime* pMaxRange) const; //<COMBINE CXTMonthCalCtrl::GetRange@CTime*@CTime*@const>
  681. DWORD GetRange(LPSYSTEMTIME pMinRange, LPSYSTEMTIME pMaxRange) const;   //<COMBINE CXTMonthCalCtrl::GetRange@CTime*@CTime*@const>
  682. //-----------------------------------------------------------------------
  683. // Summary:
  684. //     This member function retrieves date information representing the
  685. //     high and low limits of a month calendar control's display.
  686. // Parameters:
  687. //     pMinRange   - A pointer to a SYSTEMTIME structure containing the
  688. //                   date at the lowest end of the range.
  689. //     refMinRange - A reference to a CTime or COleDateTime object
  690. //                   containing the minimum date allowed.
  691. //     pMaxRange - A pointer to a SYSTEMTIME structure containing the
  692. //                 date at the highest end of the range.
  693. //     refMaxRange - A reference to a CTime or COleDateTime object containing
  694. //                   the maximum date allowed.
  695. //     dwFlags     - Value specifying the scope of the range limits to
  696. //                   be retrieved. This value must be one of the following:
  697. //
  698. //     * <b>GMR_DAYSTATE</b> Include preceding and trailing months
  699. //       of visible range that are only partially displayed.
  700. //     * <b>GMR_VISIBLE</b> Include only those months that are entirely
  701. //       displayed.
  702. // Returns:
  703. //     An integer that represents the range, in months, spanned by the two
  704. //     limits indicated by 'refMinRange' and 'refMaxRange'.
  705. //-----------------------------------------------------------------------
  706. int GetMonthRange(CTime& refMinRange, CTime& refMaxRange, DWORD dwFlags) const;
  707. int GetMonthRange(COleDateTime& refMinRange, COleDateTime& refMaxRange, DWORD dwFlags) const; // <COMBINE CXTMonthCalCtrl::GetMonthRange@CTime&@CTime&@DWORD@const>
  708. int GetMonthRange(LPSYSTEMTIME pMinRange, LPSYSTEMTIME pMaxRange, DWORD dwFlags) const;       // <COMBINE CXTMonthCalCtrl::GetMonthRange@CTime&@CTime&@DWORD@const>
  709. //-----------------------------------------------------------------------
  710. // Summary:
  711. //     This member function sets the selection for a month calendar
  712. //     control to a given date range.
  713. // Returns:
  714. //     Nonzero if successful, otherwise returns zero.
  715. // Parameters:
  716. //     pMinRange - A pointer to a CTime, COleDateTime or SYSTEMTIME object containing
  717. //                 the date at the lowest end of the range.
  718. //     pMaxRange - A pointer to a CTime, COleDateTime or SYSTEMTIME object containing the
  719. //                 date at the highest end of the range.
  720. //-----------------------------------------------------------------------
  721. BOOL SetSelRange(const CTime& pMinRange, const CTime& pMaxRange);
  722. BOOL SetSelRange(const COleDateTime& pMinRange, const COleDateTime& pMaxRange); // <COMBINE CXTMonthCalCtrl::SetSelRange@const CTime&@const CTime&>
  723. BOOL SetSelRange(const LPSYSTEMTIME pMinRange, const LPSYSTEMTIME pMaxRange);   // <COMBINE CXTMonthCalCtrl::SetSelRange@const CTime&@const CTime&>
  724. //-----------------------------------------------------------------------
  725. // Summary:
  726. //     This member function retrieves date information that represents the
  727. //     upper and lower limits of the date range currently selected by the
  728. //     user.
  729. // Parameters:
  730. //     refMinRange - A reference to a CTime or COleDateTime object containing
  731. //                   the minimum date allowed.
  732. //     pMinRange - A pointer to a SYSTEMTIME structure containing
  733. //                 the date at the lowest end of the range.
  734. //     refMaxRange - A reference to a CTime or COleDateTime object containing
  735. //                   the maximum date allowed.
  736. //     pMaxRange - A pointer to a SYSTEMTIME structure containing the
  737. //                 date at the highest end of the range.
  738. // Returns:
  739. //     Nonzero if successful, otherwise returns zero.
  740. //-----------------------------------------------------------------------
  741. BOOL GetSelRange(CTime& refMinRange, CTime& refMaxRange) const;
  742. BOOL GetSelRange(COleDateTime& refMinRange, COleDateTime& refMaxRange) const;  // <COMBINE CXTMonthCalCtrl::GetSelRange@CTime&@CTime&@const>
  743. BOOL GetSelRange(LPSYSTEMTIME pMinRange, LPSYSTEMTIME pMaxRange) const;        // <COMBINE CXTMonthCalCtrl::GetSelRange@CTime&@CTime&@const>
  744. //-----------------------------------------------------------------------
  745. // Summary:
  746. //     This member function determines which portion of a month calendar
  747. //     control is at a given point on the screen.
  748. // Parameters:
  749. //     pMCHitTest - A pointer to a MCHITTESTINFO structure containing
  750. //                  hit testing points for the month calendar control.
  751. // Returns:
  752. //     A DWORD value equal to the 'uHit' member of the MCHITTESTINFO
  753. //     structure.
  754. //-----------------------------------------------------------------------
  755. DWORD HitTest(PMCHITTESTINFO pMCHitTest);
  756. private:
  757. BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext = NULL);
  758. };
  759. //////////////////////////////////////////////////////////////////////
  760. AFX_INLINE CXTMonthCalCtrl::CXTMonthCalCtrl() {
  761. }
  762. AFX_INLINE BOOL CXTMonthCalCtrl::Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext) {
  763. return CWnd::Create(lpszClassName, lpszWindowName, dwStyle, rect, pParentWnd, nID, pContext);
  764. }
  765. AFX_INLINE DWORD CXTMonthCalCtrl::HitTest(PMCHITTESTINFO pMCHitTest) {
  766. ASSERT(::IsWindow(m_hWnd)); return (DWORD) ::SendMessage(m_hWnd, MCM_HITTEST, 0, (LPARAM) pMCHitTest);
  767. }
  768. AFX_INLINE BOOL CXTMonthCalCtrl::GetMinReqRect(RECT* pRect) const {
  769. ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, MCM_GETMINREQRECT, 0, (LPARAM) pRect);
  770. }
  771. AFX_INLINE int CXTMonthCalCtrl::SetMonthDelta(int iDelta) {
  772. ASSERT(::IsWindow(m_hWnd)); return (int) ::SendMessage(m_hWnd, MCM_SETMONTHDELTA, (WPARAM) iDelta, 0);
  773. }
  774. AFX_INLINE int CXTMonthCalCtrl::GetMonthDelta() const {
  775. ASSERT(::IsWindow(m_hWnd)); return (int) ::SendMessage(m_hWnd, MCM_GETMONTHDELTA, 0, 0);
  776. }
  777. AFX_INLINE COLORREF CXTMonthCalCtrl::GetColor(int nRegion) const {
  778. ASSERT(::IsWindow(m_hWnd)); return (COLORREF) ::SendMessage(m_hWnd, MCM_GETCOLOR, (WPARAM) nRegion, 0);
  779. }
  780. AFX_INLINE COLORREF CXTMonthCalCtrl::SetColor(int nRegion, COLORREF ref) {
  781. ASSERT(::IsWindow(m_hWnd)); return (COLORREF) ::SendMessage(m_hWnd, MCM_SETCOLOR, (WPARAM) nRegion, (LPARAM) ref);
  782. }
  783. AFX_INLINE BOOL CXTMonthCalCtrl::SetMaxSelCount(int nMax) {
  784. ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, MCM_SETMAXSELCOUNT, nMax, 0);
  785. }
  786. AFX_INLINE int CXTMonthCalCtrl::GetMaxSelCount() const {
  787. ASSERT(::IsWindow(m_hWnd)); return (int) ::SendMessage(m_hWnd, MCM_GETMAXSELCOUNT, 0, 0);
  788. }
  789. AFX_INLINE void CXTMonthCalCtrl::SetToday(const LPSYSTEMTIME pDateTime) {
  790. ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, MCM_SETTODAY, 0, (LPARAM) pDateTime);
  791. }
  792. AFX_INLINE BOOL CXTMonthCalCtrl::GetToday(LPSYSTEMTIME pDateTime) const {
  793. ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, MCM_GETTODAY, 0, (LPARAM) pDateTime);
  794. }
  795. AFX_INLINE BOOL CXTMonthCalCtrl::SetCurSel(const LPSYSTEMTIME pDateTime) {
  796. ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, MCM_SETCURSEL, 0, (LPARAM) pDateTime);
  797. }
  798. AFX_INLINE BOOL CXTMonthCalCtrl::GetCurSel(LPSYSTEMTIME pDateTime) const {
  799. ASSERT(::IsWindow(m_hWnd)); BOOL bRetVal = (BOOL)::SendMessage(m_hWnd, MCM_GETCURSEL, 0, (LPARAM) pDateTime);
  800. pDateTime->wHour = pDateTime->wMinute = pDateTime->wSecond = pDateTime->wMilliseconds = 0; return bRetVal;
  801. }
  802. // ----------------------------------------------------------------------------
  803. // Summary:
  804. //     The DDX_XTMonthCalCtrl function manages the transfer of
  805. //     date data between a month calendar control (CXTMonthCalCtrl) in a
  806. //     dialog box, form view, or control view object, and a COleDateTime
  807. //     data member, of the dialog box, form view, or control view object.
  808. //
  809. //     The control manages a date value only. The time fields in the time
  810. //     object are set to reflect the creation time of the control
  811. //     window, or whatever time was set in the control with a call to
  812. //     CXTMonthCalCtrl::SetCurSel.
  813. //
  814. // When DDX_XTMonthCalCtrl is called, <i>'value'</i> is set to
  815. //     the current state of the month calendar control.
  816. // Parameters:
  817. //     pDX -    A pointer to a CDataExchange object. The framework supplies
  818. //              this object to establish the context of the data exchange,
  819. //              including its direction. You do not need to delete this object.
  820. //     nIDC -   The resource ID of the month calendar control associated with
  821. //              the member variable.
  822. //     value -  A reference to a COleDateTime member variable of the dialog
  823. //              box, form view, or control view object with which data is
  824. //              exchanged.
  825. // See Also:
  826. //     CXTMonthCalCtrl
  827. // ----------------------------------------------------------------------------
  828. _XTP_EXT_CLASS void AFXAPI DDX_XTMonthCalCtrl(CDataExchange* pDX,    int nIDC, COleDateTime& value);
  829. // ----------------------------------------------------------------------------
  830. // Summary:
  831. //     The DDX_XTMonthCalCtrl function manages the transfer of
  832. //     date data between a month calendar control (CXTMonthCalCtrl), in a
  833. //     dialog box, form view, or control view object, and a CTime data
  834. //     member of the dialog box, form view, or control view object.
  835. //
  836. //     The control manages a date value only. The time fields in the time
  837. //     object are set to reflect the creation time of the control
  838. //     window, or whatever time was set in the control with a call to
  839. //     CXTMonthCalCtrl::SetCurSel.
  840. //
  841. //     When DDX_XTMonthCalCtrl is called, <i>'value'</i> is set to
  842. //     the current state of the month calendar control.
  843. // Parameters:
  844. //     pDX -    A pointer to a CDataExchange object. The framework supplies
  845. //              this object to establish the context of the data exchange,
  846. //              including its direction. You do not need to delete this object.
  847. //     nIDC -   The resource ID of the month calendar control associated with
  848. //              the member variable.
  849. //     value -  A reference to a CTime member variable of the dialog box, form
  850. //              view, or control view object with which data is exchanged.
  851. // See Also:
  852. //     CXTMonthCalCtrl
  853. // ----------------------------------------------------------------------------
  854. _XTP_EXT_CLASS void AFXAPI DDX_XTMonthCalCtrl(CDataExchange* pDX, int nIDC, CTime& value);
  855. // -------------------------------------------------------------------------------------
  856. // Summary:
  857. //     Call DDV_XTMinMaxMonth to verify that the time/date value
  858. //     in the month calendar control (CXTMonthCalCtrl) associated with <i>'refValue'</i>
  859. //     falls between <i>'pMinRange'</i> and <i>'pMaxRange'</i>.
  860. // Parameters:
  861. //     pDX -        A pointer to a CDataExchange object. The framework supplies
  862. //                  this object to establish the context of the data exchange,
  863. //                  including its direction.
  864. //     refValue -   A reference to an object of type CTime associated with a
  865. //                  member variable of the dialog box, form view, or control view
  866. //                  object. This object contains the data to be validated. MFC
  867. //                  passes this reference when DDV_XTMinMaxMonth is
  868. //                  called.
  869. //     pMinRange -  Minimum date/time value allowed.
  870. //     pMaxRange -  Maximum date/time value allowed.
  871. // See Also:
  872. //     CXTMonthCalCtrl
  873. // -------------------------------------------------------------------------------------
  874. _XTP_EXT_CLASS void AFXAPI DDV_XTMinMaxMonth(CDataExchange* pDX, CTime& refValue, const CTime* pMinRange, const CTime* pMaxRange);
  875. // -------------------------------------------------------------------------------------
  876. // Summary:
  877. //     Call DDV_XTMinMaxMonth to verify that the time/date value
  878. //     in the month calendar control (CXTMonthCalCtrl) associated with <i>'refValue'</i>
  879. //     falls between <i>'pMinRange'</i> and <i>'pMaxRange'</i>.
  880. // Parameters:
  881. //     pDX -        A pointer to a CDataExchange object. The framework supplies
  882. //                  this object to establish the context of the data exchange,
  883. //                  including its direction.
  884. //     refValue -   A reference to an object of type CTime associated with a
  885. //                  member variable of the dialog box, form view, or control view
  886. //                  object. This object contains the data to be validated. MFC
  887. //                  passes this reference when DDV_XTMinMaxMonth is
  888. //                  called.
  889. //     pMinRange -  Minimum date/time value allowed.
  890. //     pMaxRange -  Maximum date/time value allowed.
  891. // See Also:
  892. //     CXTMonthCalCtrl
  893. // -------------------------------------------------------------------------------------
  894. _XTP_EXT_CLASS void AFXAPI DDV_XTMinMaxMonth(CDataExchange* pDX, COleDateTime& refValue, const COleDateTime* pMinRange, const COleDateTime* pMaxRange);
  895. #endif // #if !defined(__XTDATETIMECTRL_H__)