// BaseView.cpp : implementation file
//

#include "stdafx.h"
#include "CorpSms.h"
#include "BaseView.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CBaseView

IMPLEMENT_DYNCREATE(CBaseView, CView)

CBaseView::CBaseView()
{
	m_lCurFunc = -1;

	m_bInit = false;
}

CBaseView::~CBaseView()
{
}


BEGIN_MESSAGE_MAP(CBaseView, CView)
	//{{AFX_MSG_MAP(CBaseView)
	ON_WM_SIZE()
	ON_WM_CREATE()
	ON_WM_DESTROY()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CBaseView drawing

void CBaseView::OnDraw(CDC* pDC)
{
	CDocument* pDoc = GetDocument();
	// TODO: add draw code here
/*
	CRect rect,Srect;
	GetClientRect(&rect);
	m_DrawDC.GetClipBox(&Srect);
	long lX = (rect.Width()-Srect.Width())/2;
	long lY = (rect.Height()-Srect.Height())/2;

	long lM = rect.Height()/2;

	pDC->FillSolidRect( 0 , 0 , rect.Width(),lM,RGB(255,254,251) );
	pDC->FillSolidRect( 0 , lM , rect.Width(),lM,RGB(237,237,237) );

	pDC->BitBlt(lX,lY,Srect.Width(),Srect.Height(),&m_DrawDC,0,0,SRCCOPY);
*/

#ifdef SMSCENTER_ADC
	if ( m_lCurFunc <0 )
	{
		CRect rect,Srect;
		GetClientRect(&rect);
		m_DrawDC.GetClipBox(&Srect);
		long lX = (rect.Width()-Srect.Width())/2;
		long lY = (rect.Height()-Srect.Height())/2;
		
		long lM = rect.Height()/2;
		
		pDC->FillSolidRect( 0 , 0 , rect.Width(),lM,RGB(255,254,251) );
		pDC->FillSolidRect( 0 , lM , rect.Width(),lM,RGB(237,237,237) );
		
		pDC->BitBlt(lX,lY,Srect.Width(),Srect.Height(),&m_DrawDC,0,0,SRCCOPY);
	}

#endif
}

/////////////////////////////////////////////////////////////////////////////
// CBaseView diagnostics

#ifdef _DEBUG
void CBaseView::AssertValid() const
{
	CView::AssertValid();
}

void CBaseView::Dump(CDumpContext& dc) const
{
	CView::Dump(dc);
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CBaseView message handlers

void CBaseView::OnSize(UINT nType, int cx, int cy) 
{
	CView::OnSize(nType, cx, cy);

	if ( !m_bInit )
		return ;
	
	m_dlgGAddress.MoveWindow( 0 , 0 , cx,cy);
	m_dlgGAddress2.MoveWindow( 0 , 0 , cx,cy);
	m_dlgPAddress.MoveWindow( 0 , 0 , cx,cy);
	m_dlgKAddress.MoveWindow( 0 , 0 , cx,cy);
	m_dlgSmsDF.MoveWindow( 0 , 0 , cx,cy);
	m_dlgSmsDS.MoveWindow( 0 , 0 , cx,cy);
	m_dlgSmsYF.MoveWindow( 0 , 0 , cx,cy);
	m_dlgSmsJS.MoveWindow( 0 , 0 , cx,cy);
	m_dlgSmsLog.MoveWindow( 0 , 0 , cx,cy);
	m_dlgBill.MoveWindow( 0 , 0 , cx,cy);
	m_dlgPay.MoveWindow( 0 , 0 , cx,cy);
	m_dlgSmsEmail.MoveWindow( 0 , 0 , cx,cy);
	m_dlgCalendar.MoveWindow( 0 , 0 , cx,cy);
	m_dlgSP.MoveWindow( 0 , 0 , cx,cy);
	m_dlgSWT.MoveWindow( 0 , 0 , cx,cy);
	m_dlgCJLog.MoveWindow( 0 , 0 , cx,cy);
	m_dlgMsg.MoveWindow( 0 , 0 , cx,cy);
	m_dlgCAddress.MoveWindow( 0 , 0 , cx,cy);
	m_dlgQuery.MoveWindow( 0 , 0 , cx,cy);
	m_dlgQueryLog.MoveWindow(0,0,cx,cy);
	m_dlgQueryFilt.MoveWindow(0,0,cx,cy);
	m_dlgSAddress.MoveWindow( 0 , 0 , cx,cy);
	m_dlgSWTMobile.MoveWindow(0,0,cx,cy);
	m_dlgSmsQuery_SQ.MoveWindow(0,0,cx,cy);
	m_dlgSmsAword_SQ.MoveWindow(0,0,cx,cy);
	m_dlgSmsRegister_SQ.MoveWindow(0,0,cx,cy);
	m_dlgSmsRegister.MoveWindow(0,0,cx,cy);
	m_dlgBack.MoveWindow(0,0,cx,cy);
	m_dlgTDSet.MoveWindow(0,0,cx,cy);
	m_dlgMmsDF.MoveWindow( 0 , 0 , cx,cy);
	m_dlgMmsDS.MoveWindow( 0 , 0 , cx,cy);
	m_dlgMmsYF.MoveWindow( 0 , 0 , cx,cy);
	m_dlgMmsJS.MoveWindow( 0 , 0 , cx,cy);
	m_dlgMmsLog.MoveWindow( 0 , 0 , cx,cy);
	m_dlgFaxDF.MoveWindow( 0 , 0 , cx,cy);
	m_dlgFaxDS.MoveWindow( 0 , 0 , cx,cy);
	m_dlgFaxYF.MoveWindow( 0 , 0 , cx,cy);
	m_dlgFaxJS.MoveWindow( 0 , 0 , cx,cy);
	m_dlgFaxLog.MoveWindow( 0 , 0 , cx,cy);
	m_dlgUBoxLog.MoveWindow( 0 , 0 , cx,cy);
	m_dlgPLFile.MoveWindow( 0 , 0 , cx,cy);
	m_dlgSmsTask.MoveWindow( 0 , 0 , cx,cy);
	m_dlgMmsTask.MoveWindow( 0 , 0 , cx,cy);
	m_dlgQXBoxGroup.MoveWindow( 0 , 0 , cx,cy);
	m_dlgQXBoxLog.MoveWindow( 0 , 0 , cx,cy);
}

BOOL CBaseView::ShowFuncDlg(long lFunc)
{
	if (m_lCurFunc == lFunc)
		return true;
	if ( !m_dlgGAddress.ReHide() )
		return false;
	if ( !m_dlgGAddress2.ReHide() )
		return false;
	if ( !m_dlgPAddress.ReHide() )
		return false;
	if ( !m_dlgKAddress.ReHide() )
		return false;
	if ( !m_dlgSmsDF.ReHide() )
		return false;
	if ( !m_dlgSmsDS.ReHide() )
		return false;
	if ( !m_dlgSmsYF.ReHide() )
		return false;
	if ( !m_dlgSmsJS.ReHide() )
		return false;
	if ( !m_dlgSmsLog.ReHide() )
		return false;
	if ( !m_dlgBill.ReHide() )
		return false;
	if ( !m_dlgPay.ReHide() )
		return false;
	if ( !m_dlgSmsEmail.ReHide() )
		return false;
	if ( !m_dlgCalendar.ReHide() )
		return false;
	if ( !m_dlgSP.ReHide() )
		return false;
	if ( !m_dlgSWT.ReHide() )
		return false;
	if ( !m_dlgCJLog.ReHide() )
		return false;
	if ( !m_dlgMsg.ReHide() )
		return false;
	if ( !m_dlgCAddress.ReHide() )
		return false;
	if ( !m_dlgQuery.ReHide() )
		return false;
	if ( !m_dlgQueryLog.ReHide() )
		return false;
	if ( !m_dlgQueryFilt.ReHide() )
		return false;
	if ( !m_dlgSAddress.ReHide() )
		return false;
	if ( !m_dlgSWTMobile.ReHide() )
		return false;
	if ( !m_dlgSmsQuery_SQ.ReHide() )
		return false;
	if ( !m_dlgSmsAword_SQ.ReHide() )
		return false;
	if ( !m_dlgSmsRegister_SQ.ReHide() )
		return false;
	if ( !m_dlgSmsRegister.ReHide() )
		return false;
	if ( !m_dlgBack.ReHide() )
		return false;	
	if ( !m_dlgTDSet.ReHide() )
		return false;	
	
	if ( !m_dlgMmsDF.ReHide() )
		return false;
	if ( !m_dlgMmsDS.ReHide() )
		return false;
	if ( !m_dlgMmsYF.ReHide() )
		return false;
	if ( !m_dlgMmsJS.ReHide() )
		return false;
	if ( !m_dlgMmsLog.ReHide() )
		return false;
	if ( !m_dlgFaxDF.ReHide() )
		return false;
	if ( !m_dlgFaxDS.ReHide() )
		return false;
	if ( !m_dlgFaxYF.ReHide() )
		return false;
	if ( !m_dlgFaxJS.ReHide() )
		return false;
	if ( !m_dlgFaxLog.ReHide() )
		return false;
	if ( !m_dlgUBoxLog.ReHide() )
		return false;
	if ( !m_dlgPLFile.ReHide() )
		return false;
	if ( !m_dlgSmsTask.ReHide() )
		return false;
	if ( !m_dlgMmsTask.ReHide() )
		return false;
	if ( !m_dlgQXBoxGroup.ReHide() )
		return false;
	if ( !m_dlgQXBoxLog.ReHide() )
		return false;
	

	m_lCurFunc = lFunc;
/*
	CDialog * pDlg=NULL;
	switch ( lFunc )
	{
	case DLGFUNC_GADDRESS:
		 pDlg = &m_dlgGAddress;
		 break;
	case DLGFUNC_PADDRESS:
		 pDlg = &m_dlgPAddress;
		 break;
	case DLGFUNC_KADDRESS:
		 pDlg = &m_dlgKAddress;
		 break;
	case DLGFUNC_SMSDF:
		 pDlg = &m_dlgSmsDF;
		 break;
	case DLGFUNC_SMSYF:
		 pDlg = &m_dlgSmsYF;
		 break;
	case DLGFUNC_SMSJS:
		 pDlg = &m_dlgSmsJS;
		 break;
	case DLGFUNC_SMSLOG:
		 pDlg = &m_dlgSmsLog;
		 break;
	case DLGFUNC_BILL:
		 pDlg = &m_dlgBill;
		 break;
	case DLGFUNC_SMSEMAIL:
		 pDlg = &m_dlgSmsEmail;
		 break;
	case DLGFUNC_CALENDAR:
		 pDlg = &m_dlgCalendar;
		 break;
	case DLGFUNC_SMSSP:
		 pDlg = &m_dlgSP;
		 break;
	case DLGFUNC_SWT:
		 pDlg = &m_dlgSWT;
		 break;
	case DLGFUNC_CJLOG:
		 pDlg = &m_dlgCJLog;
		 break;
	case DLGFUNC_MSG:
		 pDlg = &m_dlgMsg;
		 break;
	default:
		return false;
	}

	if ( pDlg != NULL )  //�����ƶ�����
	{
		CRect rect;
		pDlg->GetWindowRect(&rect);
		for ( int i=0 ; i< rect.Height() ; i+=20 )
		{
			pDlg->MoveWindow(0,0,rect.Width(),i);
			Sleep(50);
		}
		pDlg->MoveWindow(0,0,rect.Width(),rect.Height());
	}
*/
	switch ( lFunc )
	{
	case DLGFUNC_GADDRESS:
		 m_dlgGAddress.ReShow();
		 break;
	case DLGFUNC_PADDRESS:
		 m_dlgPAddress.ReShow();
		 break;
	case DLGFUNC_KADDRESS:
		 m_dlgKAddress.ReShow();
		 break;
	case DLGFUNC_SMSDF:
		 m_dlgSmsDF.ReShow();
		 break;
	case DLGFUNC_SMSDS:
		 m_dlgSmsDS.ReShow();
		 break;
	case DLGFUNC_SMSYF:
	case DLGFUNC_SMSYF_TODAY:
	case DLGFUNC_SMSYF_ALL:
		 if (lFunc==DLGFUNC_SMSYF_TODAY)
			m_dlgSmsYF.SetToday(true);
		 else
			m_dlgSmsYF.SetToday(false);
		 m_dlgSmsYF.ReShow();
		 break;
	case DLGFUNC_SMSJS:
	case DLGFUNC_SMSJS_TODAY:
	case DLGFUNC_SMSJS_ALL:
		 if (lFunc==DLGFUNC_SMSJS_TODAY)
			m_dlgSmsJS.SetToday(true);
		 else
			m_dlgSmsJS.SetToday(false);
		 m_dlgSmsJS.ReShow();
		 break;
	case DLGFUNC_SMSLOG:
		m_dlgSmsLog.SetToday(false);
		m_dlgSmsLog.ReShow();
		 break;
	case DLGFUNC_SMSLOG_TODAY:
	case DLGFUNC_SMSLOG_ALL:
		 m_dlgSmsLog.SetBakDBName( _T("") );
		 if (lFunc==DLGFUNC_SMSLOG_TODAY)
			m_dlgSmsLog.SetToday(true);
		 else
			m_dlgSmsLog.SetToday(false);
		 m_dlgSmsLog.ReShow();
		 break;
	case DLGFUNC_BILL:
		 m_dlgBill.ReShow();
		 break;
	case DLGFUNC_PAY:
		 m_dlgPay.ReShow();
		 break;
	case DLGFUNC_SMSEMAIL:
		 m_dlgSmsEmail.ReShow();
		 break;
	case DLGFUNC_CALENDAR:
		 m_dlgCalendar.ReShow();
		 break;
	case DLGFUNC_SMSSP:
		 m_dlgSP.ReShow();
		 break;
	case DLGFUNC_SWT:
		 m_dlgSWT.ReShow();
		 break;
	case DLGFUNC_CJLOG:
		 m_dlgCJLog.ReShow();
		 break;
	case DLGFUNC_MSG:
		 m_dlgMsg.ReShow();
		 break;
	case DLGFUNC_CADDRESS:
		 m_dlgCAddress.ReShow();
		 break;
	case DLGFUNC_QUERY:
		 m_dlgQuery.ReShow();
		 break;
	case DLGFUNC_QUERYLOG_TODAY:
	case DLGFUNC_QUERYLOG_ALL:
		 if (lFunc==DLGFUNC_QUERYLOG_TODAY)
			m_dlgQueryLog.SetToday(true);
		 else
			m_dlgQueryLog.SetToday(false);
		 m_dlgQueryLog.ReShow();
		 break;
	case DLGFUNC_QUERYFILT:
		 m_dlgQueryFilt.ReShow();
		 break;
	case DLGFUNC_SADDRESS:
		 m_dlgSAddress.ReShow();
		 break;
	case DLGFUNC_SWTMOBILE:
		 m_dlgSWTMobile.ReShow();
		 break;
	case DLGFUNC_SMSQUERY_SQ:
		 m_dlgSmsQuery_SQ.ReShow();
		 break;
	case DLGFUNC_SMSAWORD_SQ:
		 m_dlgSmsAword_SQ.ReShow();
		 break;
	case DLGFUNC_SMSREGISTER_SQ:
		 m_dlgSmsRegister_SQ.ReShow();
		 break;
	case DLGFUNC_SMSREGISTER:
		 m_dlgSmsRegister.ReShow();
		 break;
	case DLGFUNC_GADDRESS2:
		 m_dlgGAddress2.ReShow();
		 break;
	case DLGFUNC_BACK:
		 m_dlgBack.ReShow();
		 break;		 
	case DLGFUNC_TDSET:
		 m_dlgTDSet.ReShow();
		 break;		 
	case DLGFUNC_MMSDF:
		 m_dlgMmsDF.ReShow();
		 break;
	case DLGFUNC_MMSDS:
		 m_dlgMmsDS.ReShow();
		 break;
	case DLGFUNC_MMSYF:
	case DLGFUNC_MMSYF_TODAY:
	case DLGFUNC_MMSYF_ALL:
		 if (lFunc==DLGFUNC_MMSYF_TODAY)
			m_dlgMmsYF.SetToday(true);
		 else
			m_dlgMmsYF.SetToday(false);
		 m_dlgMmsYF.ReShow();
		 break;
	case DLGFUNC_MMSJS:
	case DLGFUNC_MMSJS_TODAY:
	case DLGFUNC_MMSJS_ALL:
		 if (lFunc==DLGFUNC_MMSJS_TODAY)
			m_dlgMmsJS.SetToday(true);
		 else
			m_dlgMmsJS.SetToday(false);
		 m_dlgMmsJS.ReShow();
		 break;
	//case DLGFUNC_MMSLOG:
	//	m_dlgMmsLog.SetToday(false);
	//	m_dlgMmsLog.ReShow();
	//	 break;
	case DLGFUNC_MMSLOG_TODAY:
	case DLGFUNC_MMSLOG_ALL:
		 m_dlgMmsLog.SetBakDBName( _T("") );
		 if (lFunc==DLGFUNC_MMSLOG_TODAY)
			m_dlgMmsLog.SetToday(true);
		 else
			m_dlgMmsLog.SetToday(false);
		 m_dlgMmsLog.ReShow();
		 break;
	case DLGFUNC_FAXDF:
		 m_dlgFaxDF.ReShow();
		 break;
	case DLGFUNC_FAXDS:
		 m_dlgFaxDS.ReShow();
		 break;
	case DLGFUNC_FAXYF:
	case DLGFUNC_FAXYF_TODAY:
	case DLGFUNC_FAXYF_ALL:
		 if (lFunc==DLGFUNC_FAXYF_TODAY)
			m_dlgFaxYF.SetToday(true);
		 else
			m_dlgFaxYF.SetToday(false);
		 m_dlgFaxYF.ReShow();
		 break;
	case DLGFUNC_FAXJS:
	case DLGFUNC_FAXJS_TODAY:
	case DLGFUNC_FAXJS_ALL:
		 if (lFunc==DLGFUNC_FAXJS_TODAY)
			m_dlgFaxJS.SetToday(true);
		 else
			m_dlgFaxJS.SetToday(false);
		 m_dlgFaxJS.ReShow();
		 break;
	//case DLGFUNC_FAXLOG:
	//	m_dlgFaxLog.SetToday(false);
	//	m_dlgFaxLog.ReShow();
	//	 break;
	case DLGFUNC_FAXLOG_TODAY:
	case DLGFUNC_FAXLOG_ALL:
		 m_dlgFaxLog.SetBakDBName( _T("") );
		 if (lFunc==DLGFUNC_FAXLOG_TODAY)
			m_dlgFaxLog.SetToday(true);
		 else
			m_dlgFaxLog.SetToday(false);
		 m_dlgFaxLog.ReShow();
		 break;
	case DLGFUNC_UBOXLOG_TODAY:
	case DLGFUNC_UBOXLOG_ALL:
		 m_dlgUBoxLog.SetBakDBName( _T("") );
		 if (lFunc==DLGFUNC_UBOXLOG_TODAY)
			m_dlgUBoxLog.SetToday(true);
		 else
			m_dlgUBoxLog.SetToday(false);
		 m_dlgUBoxLog.ReShow();
		 break;
	case DLGFUNC_PLFILE:
		 m_dlgPLFile.ReShow();
		 break;
	case DLGFUNC_SMSTASK:
		 m_dlgSmsTask.ReShow();
		 break;
	case DLGFUNC_MMSTASK:
		 m_dlgMmsTask.ReShow();
		 break;
	case DLGFUNC_QXBOX_GROUP:
		 m_dlgQXBoxGroup.ReShow();
		 break;
	case DLGFUNC_QXBOX_LOG_TODAY:
	case DLGFUNC_QXBOX_LOG_ALL:
		 m_dlgQXBoxLog.SetBakDBName( _T("") );
		 if (lFunc==DLGFUNC_QXBOX_LOG_TODAY)
			m_dlgQXBoxLog.SetToday(true);
		 else
			m_dlgQXBoxLog.SetToday(false);
		 m_dlgQXBoxLog.ReShow();
		 break;

	default:
		return false;
	}
	return true;
}

int CBaseView::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CView::OnCreate(lpCreateStruct) == -1)
		return -1;
	
	m_dlgGAddress.Create(IDD_GADDRESS , this);
	m_dlgGAddress2.Create(IDD_GADDRESS2 , this);
	m_dlgPAddress.Create(IDD_PADDRESS , this);
	m_dlgKAddress.Create(IDD_KADDRESS , this);
	m_dlgSmsDF.Create(IDD_SMSDF,this);
	m_dlgSmsDS.Create(IDD_SMSDS,this);
	m_dlgSmsYF.Create(IDD_SMSYF,this);
	m_dlgSmsJS.Create(IDD_SMSJS,this);
	m_dlgSmsLog.Create(IDD_SMSLOG,this);
	m_dlgBill.Create(IDD_BILL,this);
	m_dlgPay.Create(IDD_PAY,this);
	m_dlgSmsEmail.Create(IDD_SMSEMAIL,this);
	m_dlgCalendar.Create(IDD_CALENDAR,this);
	m_dlgSP.Create(IDD_SMSSP,this);
	m_dlgSWT.Create(IDD_SWT,this);
	m_dlgCJLog.Create(IDD_CJLOG,this);
	m_dlgMsg.Create(IDD_MSG,this);
	m_dlgCAddress.Create(IDD_CADDRESS , this);
	m_dlgQuery.Create(IDD_QUERY , this);
	m_dlgQueryLog.Create(IDD_SMSQUERYLOG,this);
	m_dlgQueryFilt.Create(IDD_QUERYFILT,this);
	m_dlgSAddress.Create(IDD_SADDRESS , this);
	m_dlgSWTMobile.Create(IDD_SWTMOBILE , this);
	m_dlgSmsQuery_SQ.Create(IDD_SMSQUERY_SQ , this);
	m_dlgSmsAword_SQ.Create(IDD_SMSAWORD_SQ , this);
	m_dlgSmsRegister_SQ.Create(IDD_SMSREGISTER_SQ , this);
	m_dlgSmsRegister.Create(IDD_SMSREGISTER , this);
	m_dlgBack.Create(IDD_BACK , this);
	m_dlgTDSet.Create(IDD_TDSET , this);
	m_dlgMmsDF.Create(IDD_MMSDF,this);
	m_dlgMmsDS.Create(IDD_MMSDS,this);
	m_dlgMmsYF.Create(IDD_MMSYF,this);
	m_dlgMmsJS.Create(IDD_MMSJS,this);
	m_dlgMmsLog.Create(IDD_MMSLOG,this);
	m_dlgFaxDF.Create(IDD_FAXDF,this);
	m_dlgFaxDS.Create(IDD_FAXDS,this);
	m_dlgFaxYF.Create(IDD_FAXYF,this);
	m_dlgFaxJS.Create(IDD_FAXJS,this);
	m_dlgFaxLog.Create(IDD_FAXLOG,this);
	m_dlgUBoxLog.Create(IDD_UBOXLOG,this);
	m_dlgPLFile.Create(IDD_PLFILE,this);
	m_dlgSmsTask.Create(IDD_SMSTASK,this);
	m_dlgMmsTask.Create(IDD_MMSTASK,this);
	m_dlgQXBoxGroup.Create(IDD_QXBOX_GROUP,this);
	m_dlgQXBoxLog.Create(IDD_QXBOX_LOG,this);
	


	CDC * pDC = this->GetDC();
	if (!pDC)
		return -1;

	//ȡ�ò˵������������Ļ�IJ���
	m_DrawDC.CreateCompatibleDC( pDC );
#ifdef SMSCENTER_ADC
	m_DrawBmp.LoadBitmap( IDB_LOGO_ADC2 );
#else
	m_DrawBmp.LoadBitmap( IDB_BACK );
#endif
	m_pOldBmp = m_DrawDC.SelectObject( &m_DrawBmp );
	

	m_bInit = true;

	return 0;
}


void CBaseView::OnDestroy() 
{
	CView::OnDestroy();
	
	if ( m_DrawDC.m_hDC )
	{
		m_DrawDC.SelectObject( m_pOldBmp );
		m_DrawDC.DeleteDC();
	}
}