|
|
/*++
Copyright (c) 1994-1998 Microsoft Corporation
Module Name :
dtp.h
Abstract:
DateTimePicker common control MFC wrapper definitions
Author:
Ronald Meijer (ronaldm)
Project:
Internet Services Manager
Revision History:
--*/
#ifndef _DTP_H
#define _DTP_H
//
// Notification Handler Macros
//
// <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
#define ON_DATETIMECHANGE(id, memberFxn)\
ON_NOTIFY(DTN_DATETIMECHANGE, id, memberFxn)
#define ON_USERSTRING(id, memberFxn)\
ON_NOTIFY(DTN_USERSTRING, id, memberFxn)
class COMDLL CDateTimePicker : public CWnd /*--
Class Description:
DateTimePicker MFC control wrapper.
Public Interface:
CDateTimePicker : Constructor ~CDateTimePicker : Destructor
Create : Create the control GetSystemTime : Get systemtime struct value from control SetSystemTime : Set control time value from systemtime struct GetRange : Get the min/max time range SetRange : Set the min/max time range SetFormat : Set display formatting string GetMonthCalColor : Get the month calendar colour SetMonthCalColor : Set the month calendar colour
Notes:
Either create control dynamically with Create method, or put in resource template as a user control of name "SysDateTimePick32". In this case, common style DWORDs as follows:
WS_BORDER | WS_CHILD | WS_VISIBLE 0x50800000
DTS_UPDOWN 0x0001 DTS_SHOWNONE 0x0002 DTS_SHORTDATEFORMAT 0x0000 DTS_LONGDATEFORMAT 0x0004 DTS_TIMEFORMAT 0x0009 DTS_APPCANPARSE 0x0010 DTS_RIGHTALIGN 0x0020
Time and date format changes are automatically picked up by the control
--*/ { DECLARE_DYNAMIC(CDateTimePicker)
//
// Constructor/Destructor
//
public: CDateTimePicker(); ~CDateTimePicker();
//
// Interface
//
public: //
// Create the control
//
BOOL Create( IN LPCTSTR lpszName, IN DWORD dwStyle, IN const RECT & rect, IN CWnd * pParentWnd, IN UINT nID );
//
// Returns GDT_NONE if "none" is selected (DTS_SHOWNONE only)
// Returns GDT_VALID and modifies *pst to be the currently selected value
//
DWORD GetSystemTime( OUT LPSYSTEMTIME pst );
//
// Sets datetimepick to None (DTS_SHOWNONE only)
// Returns TRUE on success, FALSE on error (such as bad params)
//
BOOL SetSystemTime();
//
// Sets datetimepick to *pst
// Returns TRUE on success, FALSE on error (such as bad params)
//
BOOL SetSystemTime( IN LPSYSTEMTIME pst );
//
// Modifies rgst[0] to be the minimum ALLOWABLE systemtime (or 0 if no min)
// Modifies rgst[1] to be the maximum ALLOWABLE systemtime (or 0 if no max)
// Returns GDTR_MIN | GDTR_MAX if there is a minimum | maximum limit
//
DWORD GetRange( OUT LPSYSTEMTIME rgst );
//
// If GDTR_MIN, sets the minimum ALLOWABLE systemtime to rgst[0],
// otherwise removes minimum
//
// If GDTR_MAX, sets the maximum ALLOWABLE systemtime to rgst[1],
// otherwise removes maximum
//
// Returns TRUE on success, FALSE on error (such as invalid parameters)
//
BOOL SetRange( IN DWORD gdtr, IN LPSYSTEMTIME rgst );
//
// Sets the display formatting string to sz (see GetDateFormat and
// GetTimeFormat for valid formatting chars)
//
// NOTE: 'X' is a valid formatting character which indicates that
// the application will determine how to display information.
// Such apps must support DTN_WMKEYDOWN, DTN_FORMAT,
// and DTN_FORMATQUERY.
//
BOOL SetFormat( IN LPCTSTR sz );
//
// Sets the month calendar colour
//
BOOL SetMonthCalColor( IN int iColor, IN COLORREF clr );
//
// Returns the month calendar colour
//
COLORREF GetMonthCalColor( IN int iColor );
protected: //
// Register the control if not yet registered.
//
static BOOL RegisterClass();
private: static BOOL m_fClassRegistered; };
//
// Inline Expansion
//
// <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
inline BOOL CDateTimePicker::Create( IN LPCTSTR lpszName, IN DWORD dwStyle, IN const RECT & rect, IN CWnd * pParentWnd, IN UINT nID ) { //
// Create the control
//
return CWnd::Create( DATETIMEPICK_CLASS, lpszName, dwStyle, rect, pParentWnd, nID ); }
inline DWORD CDateTimePicker::GetSystemTime( OUT LPSYSTEMTIME pst ) { return DateTime_GetSystemtime(m_hWnd, pst); }
inline BOOL CDateTimePicker::SetSystemTime() { return DateTime_SetSystemtime(m_hWnd, GDT_NONE, NULL); }
inline BOOL CDateTimePicker::SetSystemTime( IN LPSYSTEMTIME pst ) { ASSERT(pst != NULL); return DateTime_SetSystemtime(m_hWnd, GDT_VALID, pst); }
inline DWORD CDateTimePicker::GetRange( OUT LPSYSTEMTIME rgst ) { ASSERT(rgst != NULL); return DateTime_GetRange(m_hWnd, rgst); }
inline BOOL CDateTimePicker::SetRange( IN DWORD gdtr, IN LPSYSTEMTIME rgst ) { ASSERT(rgst != NULL); ASSERT(gdtr & (GDTR_MIN | GDTR_MAX)); return DateTime_SetRange(m_hWnd, gdtr, rgst); }
inline BOOL CDateTimePicker::SetFormat( IN LPCTSTR sz ) { ASSERT(sz != NULL); return DateTime_SetFormat(m_hWnd, sz); }
inline BOOL CDateTimePicker::SetMonthCalColor( IN int iColor, IN COLORREF clr ) { return (BOOL)DateTime_SetMonthCalColor(m_hWnd, iColor, clr); }
inline COLORREF CDateTimePicker::GetMonthCalColor( IN int iColor ) { return (COLORREF)DateTime_GetMonthCalColor(m_hWnd, iColor); }
#endif // _DTP_H
|