mEdit.h
上传用户:szth180
上传日期:2007-01-02
资源大小:23k
文件大小:2k
源码类别:

编辑框

开发平台:

Visual C++

  1. #ifndef __CmEdit_h__
  2. #define __CmEdit_h__
  3. #if _MSC_VER >= 1000
  4. #pragma once
  5. #endif // _MSC_VER >= 1000
  6. class CmEditChar
  7. {
  8. public:    
  9.     CmEditChar() { m_bStaticChar = false; }
  10.     CmEditChar(CString strChars)
  11.     {
  12.         m_strValids = strChars;
  13.         m_bStaticChar = false;
  14.     }
  15.     CmEditChar(CString strChars, bool bStaticChar)
  16.     {
  17.         m_strValids = strChars;
  18.         m_bStaticChar = bStaticChar;
  19.     }
  20.     
  21.     CString m_strValids;
  22.     CString m_strData;
  23.     bool    m_bStaticChar;
  24. };
  25. #define  MAX_CHARS  256
  26. class CmEdit : public CEdit
  27. {
  28. public:
  29. CmEdit();
  30. virtual ~CmEdit();
  31.     bool    Init(CString strMask, CString strInitialData = "");
  32.     bool    SetPromptChar(CString strPromptChar);
  33.     void    SetData(const CString& data);
  34.     CString GetData();
  35. //{{AFX_VIRTUAL(CmEdit)
  36. protected:
  37. virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
  38. //}}AFX_VIRTUAL
  39. protected:
  40.     bool            m_bInit;
  41.     CString         m_strPrompt;
  42.     CmEditChar*     m_Char[MAX_CHARS];
  43.     int             m_iNumChars;
  44.     int             m_iCurrentChar;
  45.     bool            m_bShiftDown;
  46.     bool    Parse(const CString& strMask);
  47.     bool    SetValidChars(const CString& strMask);
  48.     CString GetRange(CString szLow, CString szHigh);
  49.     //CString GetText(bool bDataOnly = false);
  50.     //CString GetData() { return GetText(true); }
  51.     int     FindNextChar(int iStartPos, bool bStatic, bool bForward);
  52.     //{{AFX_MSG(CmEdit)
  53. afx_msg void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags);
  54. afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
  55. afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
  56. afx_msg void OnDestroy();
  57. afx_msg void OnSetFocus(CWnd* pOldWnd);
  58. afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
  59. afx_msg void OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags);
  60. afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
  61. //}}AFX_MSG
  62. DECLARE_MESSAGE_MAP()
  63.     DECLARE_DYNCREATE(CmEdit)
  64. };
  65. void AFXAPI DDX_CmEdit(CDataExchange* pDX, int nIDC, CmEdit& rControl, CString& data);
  66. /////////////////////////////////////////////////////////////////////////////
  67. //{{AFX_INSERT_LOCATION}}
  68. // Microsoft Developer Studio will insert additional declarations immediately before the previous line.
  69. #endif