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

对话框与窗口

开发平台:

Visual C++

  1. // XTMaskEdit.h interface for the CXTMaskEdit 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(__XTMASKEDIT_H__)
  22. #define __XTMASKEDIT_H__
  23. //}}AFX_CODEJOCK_PRIVATE
  24. #if _MSC_VER >= 1000
  25. #pragma once
  26. #endif // _MSC_VER >= 1000
  27. #include "Common/XTMaskEditT.h"
  28. //===========================================================================
  29. // Summary:
  30. //     CXTMaskEdit is a CEdit derived class. It allows text masking to be
  31. //     applied to the control to format it for special editing restrictions.
  32. //===========================================================================
  33. class _XTP_EXT_CLASS CXTMaskEdit : public CXTMaskEditT<CEdit>
  34. {
  35. DECLARE_DYNAMIC(CXTMaskEdit)
  36. public:
  37. //-----------------------------------------------------------------------
  38. // Summary:
  39. //     Constructs a CXTMaskEdit object
  40. //-----------------------------------------------------------------------
  41. CXTMaskEdit();
  42. public:
  43. //-----------------------------------------------------------------------
  44. // Summary:
  45. //     This member function will set the mask for the edit control.
  46. // Parameters:
  47. //     lpszMask    - The format for the mask field. For example, if
  48. //                   you wanted to set the mask for a phone number,
  49. //                   and you only wanted digits to be entered, your
  50. //                   mask might look like this; _T("(000) 000-0000").
  51. //     lpszLiteral - The literal format is entered here. Wherever you
  52. //                   place an underscore ('_') is where the user will
  53. //                   be allowed to enter data only. Using the phone
  54. //                   number example; _T("(___) ___-____").
  55. //     lpszDefault - Text that is to be displayed when the control
  56. //                   is initialized. For example; _T("(800) 555-1212").
  57. //                   If NULL, 'lpszLiteral' is used to initialize the
  58. //                   edit text.
  59. // Remarks:
  60. //     The values that can be set are:
  61. //     <TABLE>
  62. //          <b>Mask Character</b>  <b>Description</b>
  63. //          ---------------------  ------------------------
  64. //          0                      Numeric (0-9)
  65. //          9                      Numeric (0-9) or space (' ')
  66. //          #                      Numeric (0-9) or space (' ') or ('+') or ('-')
  67. //          L                      Alpha (a-Z)
  68. //          ?                      Alpha (a-Z) or space (' ')
  69. //          A                      Alpha numeric (0-9 and a-Z)
  70. //          a                      Alpha numeric (0-9 and a-Z) or space (' ')
  71. //          &                      All print character only
  72. //          H                      Hex digit (0-9 and A-F)
  73. //          X                      Hex digit (0-9 and A-F) and space (' ')
  74. //          >                      Forces characters to upper case (A-Z)
  75. //          <                      Forces characters to lower case (a-z)
  76. //     </TABLE>
  77. //-----------------------------------------------------------------------
  78. virtual BOOL SetEditMask(LPCTSTR lpszMask, LPCTSTR lpszLiteral, LPCTSTR lpszDefault = NULL);
  79. // ----------------------------------------------------------------------
  80. // Summary:
  81. //     Initializes the CXTMaskEdit control.
  82. // Remarks:
  83. //     Call this member function to initialize edit control. You can
  84. //     call this after you have created or subclassed your edit
  85. //     control.
  86. // Parameters:
  87. //     pParentWnd -  Pointer to the parent of the edit control.
  88. // Returns:
  89. //     True if the control was successfully initialized, otherwise false.
  90. // ----------------------------------------------------------------------
  91. virtual bool Initialize(CWnd* pParentWnd);
  92. protected:
  93. DECLARE_MESSAGE_MAP()
  94. };
  95. //===========================================================================
  96. // Summary:
  97. //     CXTDateEdit is a CXTMaskEdit derived class. It is specifically
  98. //     geared toward editing date fields.
  99. //===========================================================================
  100. class _XTP_EXT_CLASS CXTDateEdit : public CXTMaskEdit
  101. {
  102. DECLARE_DYNAMIC(CXTDateEdit)
  103. public:
  104. //-----------------------------------------------------------------------
  105. // Summary:
  106. //     Constructs a CXTDateEdit object
  107. //-----------------------------------------------------------------------
  108. CXTDateEdit();
  109. //-----------------------------------------------------------------------
  110. // Summary:
  111. //     This member function will set the time based on the text string
  112. //     passed in as 'strDate'.
  113. // Parameters:
  114. //     dt      - A reference to a COleDateTime object that represents the
  115. //               date to display.
  116. //     strDate - A NULL terminated string that represents the date to display.
  117. //-----------------------------------------------------------------------
  118. virtual void SetDateTime(COleDateTime& dt);
  119. virtual void SetDateTime(LPCTSTR strDate); //<combine CXTDateEdit::SetDateTime@COleDateTime&>
  120. //-----------------------------------------------------------------------
  121. // Summary:
  122. //     This member function will retrieve a COleDateTime object that
  123. //     represents the currently displayed date.
  124. // Returns:
  125. //     A COleDateTime object representing the currently displayed date.
  126. //-----------------------------------------------------------------------
  127. virtual COleDateTime GetDateTime();
  128. //-----------------------------------------------------------------------
  129. // Summary:
  130. //     This member function will retrieve a CString object that represents
  131. //     the currently displayed date.
  132. // Returns:
  133. //     A CString object representing the currently displayed date.
  134. //-----------------------------------------------------------------------
  135. virtual CString GetWindowDateTime();
  136. //-----------------------------------------------------------------------
  137. // Summary:
  138. //     This member function will read the date string passed in as 'lpszData'
  139. //     and is converted and returned as a COleDateTime object.
  140. // Parameters:
  141. //     lpszData - A NULL terminated string that represents the date to convert.
  142. // Returns:
  143. //     A COleDateTime object that represents the converted date string.
  144. //-----------------------------------------------------------------------
  145. virtual COleDateTime ReadOleDateTime(LPCTSTR lpszData);
  146. //-----------------------------------------------------------------------
  147. // Summary:
  148. //     This member function is used internally to process the character passed
  149. //     in by 'nChar' whose index is specified by 'nEndPos'.
  150. // Parameters:
  151. //     nChar   - Contains the character code value of the key.
  152. //     nEndPos - Index of character in display string.
  153. // Returns:
  154. //     true if successful, otherwise returns false.
  155. //-----------------------------------------------------------------------
  156. virtual BOOL ProcessMask(TCHAR& nChar, int nEndPos);
  157. //-----------------------------------------------------------------------
  158. // Summary:
  159. //     This member function will read the date passed in as 'dt', and format
  160. //     the 'strData' string as DD/MM/YY.
  161. // Parameters:
  162. //     strData - String reference that is filled with the date.
  163. //     dt      - COleDateTime object that represents the date to format.
  164. //-----------------------------------------------------------------------
  165. virtual void FormatOleDateTime(CString& strData, COleDateTime dt);
  166. };
  167. // ----------------------------------------------------------------------------
  168. // Summary:
  169. //     The DDX_XTOleDateTime function manages the transfer of
  170. //     integer data between a date edit control, in a dialog box, form
  171. //     view, or control view object, and a COleDateTime data member of
  172. //     the dialog box, form view, or control view object.
  173. //
  174. //     When DDX_XTOleDateTime is called, <i>'value'</i> is set to
  175. //     the current state of the date edit control.
  176. // Parameters:
  177. //     pDX -        A pointer to a CDataExchange object. The framework supplies
  178. //                  this object to establish the context of the data exchange,
  179. //                  including its direction.
  180. //     nIDC -       The resource ID of the date edit control associated with the
  181. //                  control property.
  182. //     rControl -   A reference to a member variable of the dialog box, form
  183. //                  view, or control view object with which data is exchanged.
  184. //     rDateTime -  A reference to a member variable of the dialog box, form
  185. //                  view, or control view object with which data is exchanged.
  186. // See Also:
  187. //     CXTDateEdit
  188. // ----------------------------------------------------------------------------
  189. _XTP_EXT_CLASS void AFXAPI DDX_XTOleDateTime(CDataExchange* pDX, int nIDC, CXTDateEdit& rControl, COleDateTime& rDateTime);
  190. //===========================================================================
  191. // Summary:
  192. //     CXTTimeEdit is a CXTDateEdit derived class. It is specifically geared
  193. //     toward editing time fields.
  194. //===========================================================================
  195. class _XTP_EXT_CLASS CXTTimeEdit : public CXTDateEdit
  196. {
  197. DECLARE_DYNAMIC(CXTTimeEdit)
  198. public:
  199. //-----------------------------------------------------------------------
  200. // Summary:
  201. //     Constructs a CXTTimeEdit object
  202. //-----------------------------------------------------------------------
  203. CXTTimeEdit();
  204. public:
  205. //-----------------------------------------------------------------------
  206. // Summary:
  207. //     This member function will update the hours displayed.
  208. // Parameters:
  209. //     nHours - The new hour to be displayed.
  210. //-----------------------------------------------------------------------
  211. virtual void SetHours(int nHours);
  212. //-----------------------------------------------------------------------
  213. // Summary:
  214. //     This member function will update the minutes displayed.
  215. // Parameters:
  216. //     nMins - The new minutes to be displayed.
  217. //-----------------------------------------------------------------------
  218. virtual void SetMins(int nMins);
  219. //-----------------------------------------------------------------------
  220. // Summary:
  221. //     This member function will update the hours and minutes that are displayed
  222. //     for the time edit control.
  223. // Parameters:
  224. //     nHours - The new hour to be displayed.
  225. //     nMins  - The new minutes to be displayed.
  226. //-----------------------------------------------------------------------
  227. virtual void SetTime(int nHours, int nMins);
  228. //-----------------------------------------------------------------------
  229. // Summary:
  230. //     This member function will retrieve the hours displayed for the time edit
  231. //     control.
  232. // Returns:
  233. //     An integer value that represents the hours displayed.
  234. //-----------------------------------------------------------------------
  235. int GetHours() const;
  236. //-----------------------------------------------------------------------
  237. // Summary:
  238. //     This member function will retrieve the minutes displayed for the time
  239. //     edit control.
  240. // Returns:
  241. //     An integer value that represents the minutes displayed.
  242. //-----------------------------------------------------------------------
  243. int GetMins() const;
  244. //-----------------------------------------------------------------------
  245. // Summary:
  246. //     This member function is used internally to process the character
  247. //     passed in by 'nChar' whose index is specified by 'nEndPos'.
  248. // Parameters:
  249. //     nChar   - Contains the character code value of the key.
  250. //     nEndPos - Index of the character in the display string.
  251. // Returns:
  252. //     true if successful, otherwise returns false.
  253. //-----------------------------------------------------------------------
  254. virtual BOOL ProcessMask(TCHAR& nChar, int nEndPos);
  255. //-----------------------------------------------------------------------
  256. // Summary:
  257. //     This member function will read the time passed in as 'dt',
  258. //     and format the 'strData' string as HH:MM.
  259. // Parameters:
  260. //     strData - String reference that is filled with the time.
  261. //     dt      - COleDateTime object that represents the time to format.
  262. //-----------------------------------------------------------------------
  263. virtual void FormatOleDateTime(CString& strData, COleDateTime dt);
  264. //-----------------------------------------------------------------------
  265. // Summary:
  266. //     Sets military time format
  267. // Parameters:
  268. //     bMilitary - true if military time is used.
  269. //-----------------------------------------------------------------------
  270. void SetMilitary(BOOL bMilitary = TRUE);
  271. protected:
  272. int m_iHours;       // Represents the hours to display.
  273. int m_iMins;        // Represents the minutes to display.
  274. BOOL m_bMilitary;   // true if military time is used.
  275. };
  276. //////////////////////////////////////////////////////////////////////
  277. AFX_INLINE int CXTTimeEdit::GetHours() const {
  278. return m_iHours;
  279. }
  280. AFX_INLINE int CXTTimeEdit::GetMins() const {
  281. return m_iMins;
  282. }
  283. AFX_INLINE void CXTTimeEdit::SetMilitary(BOOL bMilitary /*= TRUE*/) {
  284. m_bMilitary = bMilitary;
  285. }
  286. #endif // #if !defined(__XTMASKEDIT_H__)