PropertyGridExtItemTime.h 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. #pragma once
  2. /////////////////////////////////////////////////////////////////////////////
  3. // CInplaceTimeEdit 内置时间编辑控件
  4. /////////////////////////////////////////////////////////////////////////////
  5. #include "MaskEdit.h"
  6. class CPropertyGridExtItemTime; // 前向引用
  7. class CInplaceTimeEdit : public CTimeEdit
  8. {
  9. public:
  10. // 构造函数:
  11. // bHasSecond -表明是否包含“秒”
  12. CInplaceTimeEdit(BOOL bHasSecond);
  13. virtual ~CInplaceTimeEdit();
  14. void SetValue(CString strValue);
  15. void Create(CPropertyGridExtItemTime* pItem, CRect rect);
  16. void DestroyItem();
  17. protected:
  18. CString m_strValue;
  19. CBrush m_brBack;
  20. COLORREF m_clrBack;
  21. CWnd* m_pGrid;
  22. CPropertyGridExtItemTime* m_pItem;
  23. protected:
  24. //{{AFX_VIRTUAL(CInplaceTimeEdit)
  25. //}}AFX_VIRTUAL
  26. virtual BOOL SelectConstraint(int nDirection, BOOL bCircle);
  27. //{{AFX_MSG(CInplaceTimeEdit)
  28. afx_msg HBRUSH CtlColor(CDC* pDC, UINT nCtlColor);
  29. afx_msg void OnEnKillfocus();
  30. afx_msg void OnEnSetfocus();
  31. afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
  32. afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
  33. afx_msg UINT OnGetDlgCode();
  34. void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags);
  35. //}}AFX_MSG
  36. DECLARE_MESSAGE_MAP()
  37. friend class CPropertyGridExtItemTime;
  38. };
  39. /////////////////////////////////////////////////////////////////////////////
  40. // CPropertyGridExtItemTime 该属性表项使用格式化输入控件输入和显示时间
  41. /////////////////////////////////////////////////////////////////////////////
  42. class CPropertyGridExtItemTime : public CPropertyGridItem
  43. {
  44. public:
  45. // 构造函数:
  46. // strCaption -属性名称
  47. // dtTime -初始属性值,缺省为当前时间
  48. // bHasSecond -表明是否包含“秒”
  49. CPropertyGridExtItemTime(CString strCaption, COleDateTime dtTime = COleDateTime(time(NULL)), BOOL bHasSecond = FALSE);
  50. // 构造函数:
  51. // nID -属性ID
  52. // dtTime -初始属性值,缺省为当前时间
  53. // bHasSecond -表明是否包含“秒”
  54. CPropertyGridExtItemTime(UINT nID, COleDateTime dtTime = COleDateTime(time(NULL)), BOOL bHasSecond = FALSE);
  55. virtual ~CPropertyGridExtItemTime();
  56. // 设置属性值:
  57. // dtTime-新的属性值
  58. void SetTime(COleDateTime dtTime);
  59. // 获取属性值
  60. COleDateTime GetTime();
  61. // 把一个时间对象绑定到属性项
  62. void BindToTime(COleDateTime* pBindTime);
  63. protected:
  64. COleDateTime m_dtTime; // 属性值
  65. BOOL m_bHasSecond; // 表明是否包含“秒”
  66. COleDateTime* m_pBindTime; // 绑定到属性项的时间对象
  67. // 当属性值由于用户输入而改变时,调用此函数
  68. virtual void SetValue(CString strValue);
  69. virtual void OnSelect();
  70. virtual void OnValidateEdit();
  71. virtual void SetEditText(CString str);
  72. virtual BOOL OnChar(UINT nChar);
  73. virtual void OnLButtonDblClk();
  74. CInplaceTimeEdit m_wndTimeEdit; // 内置时间编辑控件
  75. friend class CInplaceTimeEdit;
  76. };