| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 |
- #pragma once
- /////////////////////////////////////////////////////////////////////////////
- // CInplaceDateEdit 内置日期编辑控件
- /////////////////////////////////////////////////////////////////////////////
- #include "MaskEdit.h"
- class CPropertyGridExtItemDate; // 前向引用
- class CInplaceDateEdit : public CDateEdit
- {
- public:
- CInplaceDateEdit();
- virtual ~CInplaceDateEdit();
- void SetValue(CString strValue);
- void Create(CPropertyGridExtItemDate* pItem, CRect rect);
- void DestroyItem();
- protected:
- CString m_strValue;
- CBrush m_brBack;
- COLORREF m_clrBack;
- CWnd* m_pGrid;
- CPropertyGridExtItemDate* m_pItem;
- protected:
- //{{AFX_VIRTUAL(CInplaceDateEdit)
- //}}AFX_VIRTUAL
- //{{AFX_MSG(CInplaceDateEdit)
- afx_msg HBRUSH CtlColor(CDC* pDC, UINT nCtlColor);
- afx_msg void OnEnKillfocus();
- afx_msg void OnEnSetfocus();
- afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
- afx_msg UINT OnGetDlgCode();
- void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags);
- //}}AFX_MSG
- DECLARE_MESSAGE_MAP()
- friend class CPropertyGridExtItemDate;
- };
- /////////////////////////////////////////////////////////////////////////////
- // CInplaceMonthCal 内置日历控件
- /////////////////////////////////////////////////////////////////////////////
- class CInplaceMonthCal : public CMonthCalCtrl
- {
- public:
- CInplaceMonthCal();
- virtual ~CInplaceMonthCal();
- // 创建窗口
- void Create(CPropertyGridExtItemDate* pItem);
- // 删除窗口
- void DestroyItem();
- protected:
- // 用户选择了一个日期,更新属性项
- void Apply();
- // 用户取消了操作
- void Cancel();
- // 日历控件的拥有者
- CPropertyGridExtItemDate* m_pItem;
- protected:
- //{{AFX_VIRTUAL(CInplaceMonthCal)
- //}}AFX_VIRTUAL
- //{{AFX_MSG(CInplaceMonthCal)
- afx_msg void OnSelect(NMHDR* pNMHDR, LRESULT* pResult);
- afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
- afx_msg void OnKillFocus(CWnd* pNewWnd);
- afx_msg int OnMouseActivate(CWnd* pDesktopWnd, UINT nHitTest, UINT message);
- //}}AFX_MSG
- DECLARE_MESSAGE_MAP()
- friend class CPropertyGridExtItemDate;
- };
- /////////////////////////////////////////////////////////////////////////////
- // CPropertyGridExtItemDate 该属性表项使用格式化输入控件输入和显示日期
- /////////////////////////////////////////////////////////////////////////////
- class CPropertyGridExtItemDate : public CPropertyGridItem
- {
- public:
- // 构造函数:
- // strCaption -属性名称
- // dtDate -初始属性值,缺省为当前日期
- CPropertyGridExtItemDate(CString strCaption, COleDateTime dtDate = COleDateTime(time(NULL)));
- // 构造函数:
- // nID -属性ID
- // dtDate -初始属性值,缺省为当前日期
- CPropertyGridExtItemDate(UINT nID, COleDateTime dtDate = COleDateTime(time(NULL)));
-
- virtual ~CPropertyGridExtItemDate();
- // 设置属性值:
- // dtDate-新的属性值
- void SetDate(COleDateTime dtDate);
- // 获取属性值
- COleDateTime GetDate();
- // 把一个日期对象绑定到属性项
- void BindToDate(COleDateTime* pBindDate);
- protected:
- COleDateTime m_dtDate; // 属性值
- COleDateTime* m_pBindDate; // 绑定到属性项的日期对象
- // 当属性值由于用户输入而改变时,调用此函数
- virtual void SetValue(CString strValue);
- virtual void OnSelect();
- virtual void OnValidateEdit();
- virtual void SetEditText(CString str);
- virtual BOOL OnChar(UINT nChar);
- virtual void OnLButtonDblClk();
- virtual void OnInplaceButtonDown();
- CInplaceDateEdit m_wndDateEdit; // 内置日期编辑控件
- CInplaceMonthCal m_wndMonthCal; // 内置日历控件
- friend class CInplaceDateEdit;
- };
|