// RatExprD.cpp : implementation file // #include "stdafx.h" #include "cnfgprts.h" #include "RatExprD.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CRatExpireDlg dialog //-------------------------------------------------------------------------- CRatExpireDlg::CRatExpireDlg(CWnd* pParent /*=NULL*/) : CDialog(CRatExpireDlg::IDD, pParent), m_day( 0 ), m_month( 0 ), m_year( 0 ) { //{{AFX_DATA_INIT(CRatExpireDlg) // NOTE: the ClassWizard will add member initialization here //}}AFX_DATA_INIT } //-------------------------------------------------------------------------- void CRatExpireDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CRatExpireDlg) DDX_Control(pDX, IDC_MSACALCTRL, m_calendar); //}}AFX_DATA_MAP } //-------------------------------------------------------------------------- BEGIN_MESSAGE_MAP(CRatExpireDlg, CDialog) //{{AFX_MSG_MAP(CRatExpireDlg) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CRatExpireDlg message handlers //-------------------------------------------------------------------------- BOOL CRatExpireDlg::IsSystemDBCS( void ) { WORD wPrimaryLangID = PRIMARYLANGID( GetSystemDefaultLangID() ); return ( wPrimaryLangID == LANG_JAPANESE || wPrimaryLangID == LANG_CHINESE || wPrimaryLangID == LANG_KOREAN ); } //-------------------------------------------------------------------------- BOOL CRatExpireDlg::OnInitDialog( ) { SYSTEMTIME time; // get the base class going BOOL f = CDialog::OnInitDialog(); // set up the calendar in DBCS mode as appropriate - suggested by the japanese guys if ( IsSystemDBCS() ) { m_calendar.SetDayLength( 0 ); // 0: localized one m_calendar.SetMonthLength( 0 ); // 0: localized one m_calendar.SetDayFont( NULL ); // use default m_calendar.SetGridFont( NULL ); // use default m_calendar.SetTitleFont( NULL ); // use default } // // Background colour looks weird if the dialog // is not gray // m_calendar.SetBackColor(GetSysColor(COLOR_BTNFACE)); // now tell the calendar to focus on one year from today, or the supplied date // if there is one if ( m_year ) { m_calendar.SetYear( m_year ); m_calendar.SetMonth( m_month ); m_calendar.SetDay( m_day ); } else { // the default case - use one year from today GetLocalTime( &time ); m_calendar.SetYear( time.wYear + 1 ); m_calendar.SetMonth( time.wMonth ); m_calendar.SetDay( time.wDay ); } // return the answer return f; } //-------------------------------------------------------------------------- void CRatExpireDlg::OnOK() { // get the date m_day = m_calendar.GetDay(); m_month = m_calendar.GetMonth(); m_year = m_calendar.GetYear(); // test if nothing is selected - check if the year is 0 if ( m_year == 0 ) { AfxMessageBox(IDS_NO_DATE_SELECTED); return; } // put it into a CTime so we can compare CTime timeCal(m_year,m_month,m_day,12,0,0); // compare if ( timeCal < CTime::GetCurrentTime() ) { if ( AfxMessageBox(IDS_EXPIRE_SET_PAST,MB_YESNO) == IDNO ) return; } // let the dialog close CDialog::OnOK(); }