// DLG_C_Pay_YS.cpp : implementation file // #include "stdafx.h" #include "smsmanager.h" #include "DLG_C_Pay_YS.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // DLG_C_Pay_YS dialog DLG_C_Pay_YS::DLG_C_Pay_YS(CWnd* pParent /*=NULL*/) : CDialog(DLG_C_Pay_YS::IDD, pParent) { //{{AFX_DATA_INIT(DLG_C_Pay_YS) m_strBZ = _T(""); m_strPayMode = _T(""); m_tPayTime = COleDateTime::GetCurrentTime(); m_strPrice = _T(""); m_strPriceOne = _T(""); m_strSmsCount = _T(""); //}}AFX_DATA_INIT m_bMonPay = false; m_bAddMonPay = false; memset(&m_Pay,0,sizeof(m_Pay)); m_tPay.SetStatus(COleDateTime::null); } void DLG_C_Pay_YS::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(DLG_C_Pay_YS) DDX_Text(pDX, IDD_C_PAY_YS_BZ, m_strBZ); DDV_MaxChars(pDX, m_strBZ, 30); DDX_CBString(pDX, IDD_C_PAY_YS_PAYMODE, m_strPayMode); DDV_MaxChars(pDX, m_strPayMode, 15); DDX_DateTimeCtrl(pDX, IDD_C_PAY_YS_TIME, m_tPayTime); DDX_Text(pDX, IDD_C_PAY_YS_PRICE, m_strPrice); DDV_MaxChars(pDX, m_strPrice, 10); DDX_Text(pDX, IDD_C_PAY_YS_PRICEONE, m_strPriceOne); DDV_MaxChars(pDX, m_strPriceOne, 10); DDX_Text(pDX, IDD_C_PAY_YS_SMSCOUNT, m_strSmsCount); DDV_MaxChars(pDX, m_strSmsCount, 10); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(DLG_C_Pay_YS, CDialog) //{{AFX_MSG_MAP(DLG_C_Pay_YS) ON_WM_TIMER() ON_EN_CHANGE(IDD_C_PAY_YS_PRICE, OnChangeCPayYsPrice) ON_EN_CHANGE(IDD_C_PAY_YS_PRICEONE, OnChangeCPayYsPriceone) ON_EN_CHANGE(IDD_C_PAY_YS_SMSCOUNT, OnChangeCPayYsSmscount) //}}AFX_MSG_MAP ON_BN_CLICKED(IDOK, &DLG_C_Pay_YS::OnBnClickedOk) END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // DLG_C_Pay_YS message handlers BOOL DLG_C_Pay_YS::OnInitDialog() { CDialog::OnInitDialog(); m_strPayMode = _T("������"); if ( m_tPay.GetStatus() == COleDateTime::valid ) { m_tPayTime = m_tPay; } if ( m_bMonPay ) { GetDlgItem(IDD_C_PAY_YS_S1)->ShowWindow(SW_SHOW); GetDlgItem(IDD_C_PAY_YS_S2)->ShowWindow(SW_SHOW); GetDlgItem(IDD_C_PAY_YS_S3)->ShowWindow(SW_SHOW); GetDlgItem(IDD_C_PAY_YS_PRICE)->ShowWindow(SW_SHOW); GetDlgItem(IDD_C_PAY_YS_PRICEONE)->ShowWindow(SW_SHOW); GetDlgItem(IDD_C_PAY_YS_SMSCOUNT)->ShowWindow(SW_SHOW); m_strPrice.Format( _T("%.2f") , m_Pay.fPrice ); m_strPriceOne.Format( _T("%.4f") , m_Pay.fPriceOne ); m_strSmsCount.Format( _T("%d") , m_Pay.lSMSCount ); } UpdateData(false); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void DLG_C_Pay_YS::OnBnClickedOk() { if(!UpdateData(true)) return ; if ( m_bMonPay ) { double fPriceOne = _tstof(m_strPriceOne); if ( fPriceOne<=0.02f || fPriceOne>0.50f ) { MessageBox( _T("ʵ�ն��ŵ����������飡") , _T("����") , MB_ICONWARNING ); GetDlgItem(IDD_C_PAY_YS_PRICEONE)->SetFocus(); return ; } double fPrice = _tstof(m_strPrice); if ( fPrice!=m_Pay.fPrice ) { long iRet = MessageBox( _T("ʵ�ն��Ž�����ʵ��������Ƿ������") , _T("����") , MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 ); if ( iRet != IDYES ) return; } long lSmsCount = _ttol(m_strSmsCount); if ( lSmsCount!=m_Pay.lSMSCount ) { long iRet = MessageBox( _T("ʵ�ն����������ʵ������������Ƿ������") , _T("����") , MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 ); if ( iRet != IDYES ) return; } if ( lSmsCount<m_Pay.lSMSCount ) { long iRet = MessageBox( _T("ʵ�ն����������ʵ������٣��Ƿ�δ����������һ��Ƿ���ʵ���") , _T("����") , MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON1 ); if ( iRet == IDYES ) { m_bAddMonPay = true; } } m_Pay.fYSPrice = fPrice; m_Pay.fYSPriceOne = fPriceOne; m_Pay.lYSSMSCount = lSmsCount; } CDialog::OnOK(); } void DLG_C_Pay_YS::SetParam(ANS_Corp_MonPayData *pPay) { m_bMonPay = true; m_Pay = *pPay; } void DLG_C_Pay_YS::OnTimer(UINT nIDEvent) { CDialog::OnTimer(nIDEvent); if ( nIDEvent ==1 ) //�ܽ��ı䣬���¼���������� { KillTimer(nIDEvent); if ( !UpdateData(true) ) return ; double fPrice = _tstof(m_strPrice); double fPriceOne = _tstof(m_strPriceOne); if ( fPriceOne<=0.02f || fPriceOne>0.50f ) { MessageBox( _T("ʵ�ն��ŵ����������飡") , _T("����") , MB_ICONWARNING ); GetDlgItem(IDD_C_PAY_YS_PRICEONE)->SetFocus(); return ; } long lSmsCount = fPrice / fPriceOne; m_strSmsCount.Format( _T("%d") , lSmsCount ); UpdateData(false); } if ( nIDEvent ==2 ) //���۸ı䣬���¼���������� { KillTimer(nIDEvent); if ( !UpdateData(true) ) return ; double fPrice = _tstof(m_strPrice); double fPriceOne = _tstof(m_strPriceOne); if ( fPriceOne<=0.02f || fPriceOne>0.50f ) { MessageBox( _T("ʵ�ն��ŵ����������飡") , _T("����") , MB_ICONWARNING ); GetDlgItem(IDD_C_PAY_YS_PRICEONE)->SetFocus(); return ; } long lSmsCount = fPrice / fPriceOne; m_strSmsCount.Format( _T("%d") , lSmsCount ); UpdateData(false); } if ( nIDEvent ==3 ) //���������ı䣬���¼����ܼ� { KillTimer(nIDEvent); if ( !UpdateData(true) ) return ; long lSmsCount = _ttol(m_strSmsCount); double fPriceOne = _tstof(m_strPriceOne); if ( fPriceOne<=0.02f || fPriceOne>0.50f ) { MessageBox( _T("ʵ�ն��ŵ����������飡") , _T("����") , MB_ICONWARNING ); GetDlgItem(IDD_C_PAY_YS_PRICEONE)->SetFocus(); return ; } double fPrice = (double)lSmsCount * fPriceOne; m_strPrice.Format( _T("%.2f") , fPrice ); UpdateData(false); } } void DLG_C_Pay_YS::OnChangeCPayYsPrice() { SetTimer( 1 , 50 , NULL ); } void DLG_C_Pay_YS::OnChangeCPayYsPriceone() { SetTimer( 2 , 50 , NULL ); } void DLG_C_Pay_YS::OnChangeCPayYsSmscount() { SetTimer( 3 , 50 , NULL ); } ANS_Corp_MonPayData DLG_C_Pay_YS::GetParam() { return m_Pay; } void DLG_C_Pay_YS::SetPayTime(COleDateTime payTime) { m_tPay = payTime; }