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

对话框与窗口

开发平台:

Visual C++

  1. // XTPDatePickerItemMonth.h: interface for the CXTPDatePickerItemMonth class.
  2. //
  3. // This file is a part of the XTREME CALENDAR 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(_XTPDATEPICKERITEMMONTH_H__)
  22. #define _XTPDATEPICKERITEMMONTH_H__
  23. //}}AFX_CODEJOCK_PRIVATE
  24. #if _MSC_VER > 1000
  25. #pragma once
  26. #endif // _MSC_VER > 1000
  27. //{{AFX_CODEJOCK_PRIVATE
  28. // Maximum amount of weeks shown in one month area.
  29. const UINT XTP_MAX_WEEKS = (UINT)6;
  30. // Number of days in the week.
  31. const UINT XTP_WEEK_DAYS = (UINT)7;
  32. //}}AFX_CODEJOCK_PRIVATE
  33. class CXTPDatePickerControl;
  34. class CXTPDatePickerItemDay;
  35. //===========================================================================
  36. //-----------------------------------------------------------------------
  37. // Summary:
  38. //     Class CXTPDatePickerItemMonth represents one month inside the
  39. //     date picker month grid.
  40. // Remarks:
  41. //     Call the constructor to create the object and provide a pointer
  42. //     to the DatePicker control. The date value corresponds to the first
  43. //     day of the month and the grid coordinates. It is not necessary to
  44. //     add day items to the month item after creation. The month item
  45. //     constructor calls the day item constructor and fills the day items.
  46. // See Also: CXTPDatePickerItemDay
  47. //===========================================================================
  48. class _XTP_EXT_CLASS CXTPDatePickerItemMonth : public CXTPCmdTarget
  49. {
  50. //{{AFX_CODEJOCK_PRIVATE
  51. friend class CXTPDatePickerControl;
  52. friend class CXTPDatePickerPaintManager;
  53. friend class CXTPDatePickerTheme;
  54. //}}AFX_CODEJOCK_PRIVATE
  55. public:
  56. // ------------------------------------------------------------------------
  57. // Summary:
  58. //     Default CXTPDatePickerItemMonth object constructor.
  59. // Parameters:
  60. //     pControl :  A CXTPDatePickerControl pointer to the parent DatePicker
  61. //                 control.
  62. // dtMonth :   A COleDateTime object date of the first day of the month.
  63. // nRow :      An int that contains the vertical coordinate of the month
  64. //             in the control's months grid.
  65. // nCol :      An int that contains the horizontal coordinate of the month
  66. //             in the control's months grid.
  67. // Remarks:
  68. //     Handles initial initialization, populates the month item with the
  69. //     corresponding day items.
  70. // See Also:
  71. //     PopulateDays(), CXTPDatePickerItemDay
  72. // ------------------------------------------------------------------------
  73. CXTPDatePickerItemMonth(CXTPDatePickerControl* pControl, COleDateTime dtMonth, int nRow, int nCol);
  74. //-----------------------------------------------------------------------
  75. // Summary:
  76. //     Default collection destructor.
  77. // Remarks:
  78. //     Handles member items deallocation.
  79. // See Also: ClearDays()
  80. //-----------------------------------------------------------------------
  81. virtual ~CXTPDatePickerItemMonth();
  82. // ----------------------------------------------------------------------------
  83. // Summary:
  84. //     Call this member function to adjust the layout of all sub-items.
  85. // Parameters:
  86. //     rcClient :  A CRect object that contains the coordinates of the control.
  87. //     bIsAuto :   A BOOL that determines the method that is used to adjust the
  88. //                 layout: If TRUE - The layout is adjusted depending on the
  89. //                 given control client area rectangle. If FALSE - The layout
  90. //                 calculations depend on the current display settings of all
  91. //                 included items (day items, header items) and the current
  92. //                 device context.
  93. // Remarks:
  94. //     Adjusts the layout of all sub-items in two different ways
  95. //     depending on the bIsAuto parameter. If bIsAuto = TRUE, then the
  96. //     layout is adjusted depending on the given control's client area
  97. //     rectangle. In this case the given count of month items is adjusted
  98. //     to fit the client area. If bIsAuto = FALSE, then the layout
  99. //     calculation depends on the current display settings of all
  100. //     included items (day items, header items) and the current device
  101. //     context. In this case the size of one month item is calculated
  102. //     first, this then determines the count of the month items that fit
  103. //     into the control's client rectangle. Note: The second method is
  104. //     the default mode.
  105. // ----------------------------------------------------------------------------
  106. void AdjustLayout(CRect rcClient, BOOL bIsAuto = FALSE);
  107. //-----------------------------------------------------------------------
  108. // Summary:
  109. //     Call this member function to perform drawing logic.
  110. // Parameters:
  111. //     pDC - Pointer to a valid device context.
  112. // Remarks:
  113. //     This function performs all drawing logic.
  114. //     This member function is used to display the month item. It does not
  115. //     perform any adjustments or size corrections. You must call
  116. //     AdjustLayout(CRect rcClient, BOOL bIsAuto = FALSE) first to
  117. //     handle all adjustments.
  118. // See Also: AdjustLayout(CRect rcClient, BOOL bIsAuto = FALSE)
  119. //-----------------------------------------------------------------------
  120. virtual void Draw(CDC* pDC);
  121. // ---------------------------------------------------------------------
  122. // Summary:
  123. //     Call this member function to obtain the month date.
  124. // Remarks:
  125. //     Use this member function to identify the month by date. Use the
  126. //     date that corresponds to the first day of the month.
  127. // Returns:
  128. //     A ColeDateTime object that contains the month date for which this
  129. //     item represents.
  130. // ---------------------------------------------------------------------
  131. COleDateTime GetMonth();
  132. // ----------------------------------------------------------------------
  133. // Summary:
  134. //     Call this member function to determine if the days before a given
  135. //     month are displayed.
  136. // Remarks:
  137. //     This option allows changing the behavior of the control in the
  138. //     following way: If the first day of the month is Wednesday you may
  139. //     wish to leave places for Monday and Tuesday items empty to display
  140. //     the last days from previous month item.
  141. // Returns:
  142. //     Boolean value that determines if the days before this month are
  143. //     visible. TRUE if the days before this month are visible. Otherwise
  144. //     FALSE.
  145. // See Also:
  146. //     SetShowDaysBefore(BOOL bShow), SetShowDaysAfter(BOOL bShow),
  147. //     GetShowDaysAfter()
  148. // ----------------------------------------------------------------------
  149. BOOL GetShowDaysBefore();
  150. // ----------------------------------------------------------------------
  151. // Summary:
  152. //     Call this member function to determine whether to show the days
  153. //     after this month.
  154. // Remarks:
  155. //     This option allows changing the behavior of the control in the
  156. //     following way: If the last day of the month is Wednesday you may
  157. //     wish to leave places for the remaining day items empty or display
  158. //     the beginning days from the next month item.
  159. // Returns:
  160. //     Boolean value determines whether to show the days after this
  161. //     month. TRUE - If the days after this month are visible. FALSE - If
  162. //     the days after this month are not visible.
  163. // See Also:
  164. //     GetShowDaysBefore()
  165. // ----------------------------------------------------------------------
  166. BOOL GetShowDaysAfter();
  167. // ---------------------------------------------------------------------------------
  168. // Summary:
  169. //     Call this member function to set whether days before this month
  170. //     are shown.
  171. // Parameters:
  172. //     bShow :  Boolean value that determines if the days before this month are
  173. //              displayed.<p/>TRUE if the days before this month are shown.<p/>FALSE
  174. //              if the days before this month are not shown.
  175. // Remarks:
  176. //     This option allows changing the behavior of the control in the
  177. //     following way: If the first day of the month is Wednesday you may
  178. //     leave places for Monday and Tuesday items empty or display the
  179. //     last days from the previous month item.
  180. // See Also:
  181. //     GetShowDaysBefore()
  182. // ---------------------------------------------------------------------------------
  183. void SetShowDaysBefore(BOOL bShow);
  184. // ----------------------------------------------------------------------------------
  185. // Summary:
  186. //     Call this member function to set whether days after this month are
  187. //     shown.
  188. // Parameters:
  189. //     bShow :  Boolean value that determines if the days after this month are
  190. //              displayed.<p/>TRUE if the days after this month are visible.<p/>FALSE
  191. //              if the days after this month are not visible.
  192. // Remarks:
  193. //     This option allows changing the behavior of the control in the
  194. //     following way: If the last day of month is Wednesday you may wish
  195. //     to leave places for remaining day items empty or display the
  196. //     beginning days from next month item.
  197. // See Also:
  198. //     GetShowDaysAfter()
  199. // ----------------------------------------------------------------------------------
  200. void SetShowDaysAfter(BOOL bShow);
  201. //-----------------------------------------------------------------------
  202. // Summary:
  203. //     Call this member function to determine if the left scroll
  204. //     triangle is visible.
  205. // Remarks:
  206. //     This option allows using scrolling facilities to find and work
  207. //     with month items that currently are not shown in the control.
  208. //     ScrollV to desired month item using the scroll triangle
  209. //     icon.
  210. // Returns:
  211. //     Boolean value determines if the left scroll triangle is visible.
  212. //     TRUE - If the left scroll triangle is visible.
  213. //     FALSE - If the left scroll triangle is not visible.
  214. // See Also: GetShowRightScroll, SetShowScrolling
  215. //-----------------------------------------------------------------------
  216. BOOL GetShowLeftScroll();
  217. // ----------------------------------------------------------------------
  218. // Summary:
  219. //     Call this member function to determine if the right scroll
  220. //     triangle is visible.
  221. // Remarks:
  222. //     This option allows scrolling facilities to find and work with
  223. //     month items that currently are not shown in the control. ScrollV to
  224. //     desired month item using the scroll triangle icon.
  225. // Returns:
  226. //     Boolean value that determines if the right scroll triangle is
  227. //     visible.
  228. //     TRUE  - If the right scroll triangle is visible.
  229. //     FALSE - If the right scroll triangle is not visible.
  230. // See Also:
  231. //     GetShowLeftScroll, SetShowScrolling
  232. // ----------------------------------------------------------------------
  233. BOOL GetShowRightScroll();
  234. // ------------------------------------------------------------------------------
  235. // Summary:
  236. //     Call this member function to add the left and the right scrolling
  237. //     triangles.
  238. // Parameters:
  239. //     bLeftScroll :   Boolean value determines if the left scroll triangle is
  240. //                     visible.<p/>TRUE Left scrolling triangle is visible. Right
  241. //                     scrolling triangle is visible.<p/>FALSE Left scrolling
  242. //                     triangle is not visible. Right scrolling triangle is not
  243. //                     visible.
  244. // bRightScroll :  Boolean value determines if the right scroll triangle is
  245. //                 visible.
  246. // Remarks:
  247. //     This option allows scrolling facilities to find and work with
  248. //     month items that currently aren't shown in the control. ScrollV to
  249. //     the desired month item using the scroll triangle icon. In some
  250. //     cases scrolling is not needed, and you can hide one or both
  251. //     scrolling triangles.
  252. // See Also:
  253. //     GetShowLeftScroll, GetShowRightScroll
  254. // ------------------------------------------------------------------------------
  255. void SetShowScrolling(BOOL bLeftScroll, BOOL bRightScroll);
  256. // ----------------------------------------------------------------------
  257. // Summary:
  258. //     Call this member function to obtain the day item by its index in
  259. //     the day collection of the month.
  260. // Parameters:
  261. //     nIndex :  An int that contains the zero-based index value.
  262. // Remarks:
  263. //     If the index value is less than 0 and greater then the value
  264. //     returned by GetDayCount() the function returns NULL.
  265. // Example:
  266. // <code>
  267. // // Enumerate the month array.
  268. // CPoint point (100, 100);
  269. // int nDayCount = GetDayCount();
  270. // for (int nDay = 0; nDay < nDayCount; nDay++)
  271. // {
  272. //     CXTPDatePickerItemDay* pDay = GetDay(nDay);
  273. //     if (pDay && pDay->GetRect().PtInRect(point) && pDay->IsVisible())
  274. //     return pDay;
  275. // }
  276. // </code>
  277. // Returns:
  278. //     A pointer to a CXTPDatePickerItemDay object or NULL if the index
  279. //     is invalid.
  280. // See Also:
  281. //     GetDayCount()
  282. // ----------------------------------------------------------------------
  283. CXTPDatePickerItemDay* GetDay(int nIndex);
  284. // ----------------------------------------------------------------------
  285. // Summary:
  286. //     Call this member function to obtain the number of day items in the
  287. //     month collection.
  288. // Returns:
  289. //     An int that contains the number of items stored in the collection.
  290. // See Also:
  291. //     GetDay(int nIndex)
  292. // ----------------------------------------------------------------------
  293. int GetDayCount() const;
  294. //-----------------------------------------------------------------------
  295. // Summary:
  296. //     Call this function to return the day where the mouse cursor was
  297. //     located when the left mouse button was clicked.
  298. // Parameters:
  299. //     point :  A CPoint object that specifies the x- and y- coordinates
  300. //              of the cursor.
  301. //     bCheckVisible : TRUE when check visibility flag of the day item.
  302. //              If this parameter is FALSE, the method would return pointer
  303. //              to the corresponding day item even if this day is hidden
  304. //              (for example days from previous month).
  305. //              It is TRUE by default.
  306. // Remarks:
  307. //     This member function is heavily used by all event handlers to
  308. //     determine the item that was disturbed by the mouse pointer. If
  309. //     item was found, then the function returns a pointer to item,
  310. //     otherwise NULL is returned.
  311. // Returns:
  312. //     Returns a pointer to the affected day item. Returns NULL if the
  313. //     left mouse button was clicked outside any day area.
  314. //-----------------------------------------------------------------------
  315. CXTPDatePickerItemDay* HitTest(CPoint point, BOOL bCheckVisible = TRUE);
  316. protected:
  317. //-----------------------------------------------------------------------
  318. // Summary:
  319. //     Call this member function to cleanup the days array.
  320. // Remarks:
  321. //     Handles cleanup of days collection, including each day item.
  322. //-----------------------------------------------------------------------
  323. void ClearDays();
  324. // ----------------------------------------------------------
  325. // Summary:
  326. //     Call this member function to populate the day objects.
  327. // Remarks:
  328. //     Creates days objects based on the current settings.
  329. // ----------------------------------------------------------
  330. void PopulateDays();
  331. // ---------------------------------------------------------------------
  332. // Summary:
  333. //     This member function is called to process left button down mouse
  334. //     messages.
  335. // Parameters:
  336. //     nFlags :  A UINT that is used to indicate whether various virtual
  337. //               keys are down.
  338. // point :   A CPoint object that specifies the x- and y- coordinates
  339. //           of the cursor.
  340. // Remarks:
  341. //     This function is called from control event handlers.
  342. // ---------------------------------------------------------------------
  343. void OnLButtonDown(UINT nFlags, CPoint point);
  344. // --------------------------------------------------------------------
  345. // Summary:
  346. //     This member function is called to process left button up mouse
  347. //     messages.
  348. // Parameters:
  349. //     nFlags :  A UINT that indicates whether various virtual keys are
  350. //               down.
  351. // point :   A CPoint object that specifies the x- and y- coordinates
  352. //           of the cursor.
  353. // Remarks:
  354. //     This function is called from control event handlers.
  355. // --------------------------------------------------------------------
  356. void OnLButtonUp(UINT nFlags, CPoint point);
  357. // --------------------------------------------------------------------
  358. // Summary:
  359. //     This function is called to process mouse move messages.
  360. // Parameters:
  361. //     nFlags :  A UINT that indicates whether various virtual keys are
  362. //               down.
  363. // point :   A CPoint object that specifies the x- and y- coordinates
  364. //               of the cursor.
  365. // Remarks:
  366. //     This function is called from control event handlers.
  367. // --------------------------------------------------------------------
  368. void OnMouseMove(UINT nFlags, CPoint point);
  369. // ---------------------------------------------------------------------
  370. // Summary:
  371. //     This member function is called to process changing cursor message.
  372. // Parameters:
  373. //     point : A CPoint object that specifies the x- and y- coordinates
  374. //             of the cursor.
  375. // Remarks:
  376. //     This function is called from control event handlers.
  377. // Returns:
  378. //     Nonzero to halt further processing, or 0 to continue.
  379. // ---------------------------------------------------------------------
  380. BOOL OnSetCursor(CPoint point);
  381. // ------------------------------------------------------------------------------
  382. // Summary:
  383. //     Call this member function to calculate sizes and counts by font
  384. //     metrics.
  385. // Parameters:
  386. //     rcClient :  A CRect object that contains the coordinates of the control and
  387. //                 the location where the control is drawn.
  388. // Remarks:
  389. //     This member function implements one of the branches of
  390. //     AdjustLayout(). If FALSE - The calculated layout depends on
  391. //     correct display settings of all included items (day items, header
  392. //     items) and current device context. In this case, the size of one
  393. //     month item is calculated first, then it determines the count of
  394. //     month items that fit into the control client rectangle.
  395. // See Also:
  396. //     AdjustLayout()
  397. // ------------------------------------------------------------------------------
  398. void ByFontAdjustLayout(CRect rcClient);
  399. // ---------------------------------------------------------------------------
  400. // Summary:
  401. //     This member function is used to calculate the size of the header,
  402. //     days of week, week numbers, and the scrolling triangles bounding
  403. //     rectangles.
  404. // Parameters:
  405. //     rcClient :  A CRect object that contains the coordinates that specifies
  406. //                 where the control is drawn.
  407. // Remarks:
  408. //     This member function implements one of the branches of
  409. //     AdjustLayout(). If TRUE, then the layout is adjusted depending on
  410. //     the given control client area rectangle. In this case, the given
  411. //     count of month items is adjusted to fit the client area.
  412. // See Also:
  413. //     AdjustLayout()
  414. // ---------------------------------------------------------------------------
  415. void AutoAdjustLayout(CRect rcClient);
  416. // Attributes
  417. protected:
  418. CXTPDatePickerControl* m_pControl;  // -----------------------------------------------------------------
  419.                                     // This member variable is a CXTPDatePickerControl object pointer to
  420.                                     // the parent control
  421.                                     // -----------------------------------------------------------------
  422. int m_nRow;                         // -------------------------------------------------------------
  423.                                     // This member variable is an int that is used for the row month
  424.                                     // index.
  425.                                     // -------------------------------------------------------------
  426. int m_nColumn;                      // ----------------------------------------------------------------
  427.                                     // This member variable is an int that is used for the column month
  428.                                     // index.
  429.                                     // ----------------------------------------------------------------
  430. COleDateTime m_dtMonth;             // ---------------------------------------------------------------
  431.                                     // This member variable is COleDateTime object that is used as the
  432.                                     // date with the month definition for the month item.
  433.                                     // ---------------------------------------------------------------
  434. BOOL m_bShowDaysBefore;             // ------------------------------------------------------------------
  435.                                     // This member variable is a BOOL that is used to determine if the
  436.                                     // "days before this month" are visible. The valid values are TRUE if
  437.                                     // the "days before this month" are visible, otherwise false.
  438.                                     // ------------------------------------------------------------------
  439. BOOL m_bShowDaysAfter;              // -----------------------------------------------------------------
  440.                                     // This member variable is a BOOL that is used to indicate if the
  441.                                     // "days after this month" are visible. The valid values are TRUE if
  442.                                     // the "days after this month" are visible, otherwise FALSE.
  443.                                     // -----------------------------------------------------------------
  444. BOOL m_bShowLeftScroll;             // ---------------------------------------------------------------
  445.                                     // This member variable is a BOOL that is used to determine if the
  446.                                     // "left scroll triangle" is visible. The valid values are TRUE if
  447.                                     // the "left scroll triangle" is visible, otherwise false.
  448.                                     // ---------------------------------------------------------------
  449. BOOL m_bShowRightScroll;            // ----------------------------------------------------------------
  450.                                     // This member variable is a BOOL that is used to determine if the
  451.                                     // "right scroll triangle" is visible. The valid values are TRUE if
  452.                                     // the "right scroll triangle" is visible, otherwise false.
  453.                                     // ----------------------------------------------------------------
  454. CRect m_rcMonth;                    // --------------------------------------------------------
  455.                                     // This member variable is a CRect object that contains the
  456.                                     // coordinates of the total month's area.
  457.                                     // --------------------------------------------------------
  458. CRect m_rcHeader;                   // --------------------------------------------------------
  459.                                     // This member variable is a CRect object that contains the
  460.                                     // coordinates of the month's header area.
  461.                                     // --------------------------------------------------------
  462. CRect m_rcDaysOfWeek;               // --------------------------------------------------------
  463.                                     // This member variable is a CRect object that contains the
  464.                                     // coordinates of the month's "week days" area.
  465.                                     // --------------------------------------------------------
  466. CRect m_rcWeekNumbers;              // --------------------------------------------------------
  467.                                     // This member variable is a CRect object that contains the
  468.                                     // coordinates of the month's week numbers area.
  469.                                     // --------------------------------------------------------
  470. CRect m_rcDaysArea;                 // --------------------------------------------------------
  471.                                     // This member variable is a CRect object that contains the
  472.                                     // coordinates of the month's "all days" area.
  473.                                     // --------------------------------------------------------
  474. CRect m_rcLeftScroll;               // --------------------------------------------------------
  475.                                     // This member variable is a CRect object that contains the
  476.                                     // coordinates of the left scroll triangle area.
  477.                                     // --------------------------------------------------------
  478. CRect m_rcRightScroll;              // --------------------------------------------------------
  479.                                     // This member variable is a CRect object that contains the
  480.                                     // coordinates of the right scroll triangle area.
  481.                                     // --------------------------------------------------------
  482. CArray<CXTPDatePickerItemDay*, CXTPDatePickerItemDay*> m_arrDays;   // -----------------------------------------------------------
  483.                                                                     // This member variable is a CArray<CXTPDatePickerItemDay*,
  484.                                                                     // CXTPDatePickerItemDay*> object that is used as an internal
  485.                                                                     // storage area for the day items.
  486.                                                                     // -----------------------------------------------------------
  487. private:
  488. //{{AFX_CODEJOCK_PRIVATE
  489. static void Swap(COleDateTime& dtFirst, COleDateTime& dtSecond);
  490. //}}AFX_CODEJOCK_PRIVATE
  491. };
  492. AFX_INLINE COleDateTime CXTPDatePickerItemMonth::GetMonth() {
  493. return m_dtMonth;
  494. }
  495. AFX_INLINE BOOL CXTPDatePickerItemMonth::GetShowDaysBefore() {
  496. return m_bShowDaysBefore;
  497. }
  498. AFX_INLINE BOOL CXTPDatePickerItemMonth::GetShowDaysAfter() {
  499. return m_bShowDaysAfter;
  500. }
  501. AFX_INLINE void CXTPDatePickerItemMonth::SetShowDaysBefore(BOOL bShow) {
  502. m_bShowDaysBefore = bShow;
  503. }
  504. AFX_INLINE void CXTPDatePickerItemMonth::SetShowDaysAfter(BOOL bShow) {
  505. m_bShowDaysAfter = bShow;
  506. }
  507. AFX_INLINE BOOL CXTPDatePickerItemMonth::GetShowLeftScroll() {
  508. return m_bShowLeftScroll;
  509. }
  510. AFX_INLINE BOOL CXTPDatePickerItemMonth::GetShowRightScroll() {
  511. return m_bShowRightScroll;
  512. }
  513. AFX_INLINE void CXTPDatePickerItemMonth::SetShowScrolling(BOOL bLeftScroll, BOOL bRightScroll) {
  514. m_bShowLeftScroll = bLeftScroll;
  515. m_bShowRightScroll = bRightScroll;
  516. }
  517. AFX_INLINE void CXTPDatePickerItemMonth::Swap(COleDateTime& dtFirst, COleDateTime& dtSecond) {
  518. COleDateTime dtTemp = dtFirst;
  519. dtFirst = dtSecond;
  520. dtSecond = dtTemp;
  521. }
  522. #endif // !defined(_XTPDATEPICKERITEMMONTH_H__)