// DLG_QXBox_Group_Send.cpp : 实现文件
//

#include "stdafx.h"
#include "CorpSms.h"
#include "DLG_QXBox_Group_Send.h"
#include "afxdialogex.h"


// DLG_QXBox_Group_Send 对话框

IMPLEMENT_DYNAMIC(DLG_QXBox_Group_Send, CDialogEx)

DLG_QXBox_Group_Send::DLG_QXBox_Group_Send(CWnd* pParent /*=NULL*/)
	: CDialogEx(DLG_QXBox_Group_Send::IDD, pParent)
	, m_strImageName(_T(""))
	, m_strMobile(_T(""))
{
	memset(&m_Send,0,sizeof(m_Send));
	m_lSendType = 0;
	m_tDate = COleDateTime::GetCurrentTime();
	m_tTime = COleDateTime::GetCurrentTime();
	m_strMobileAll = _T("");
	m_strMobileSent = _T("");
	m_strMsg = _T("");
	m_strRecver = _T("");
	m_strSender = _T("");
	m_strSendTime = _T("");
	m_lMaxImageSize = 1024*1024; //图片文件最大支持4M
}

DLG_QXBox_Group_Send::~DLG_QXBox_Group_Send()
{
}

void DLG_QXBox_Group_Send::DoDataExchange(CDataExchange* pDX)
{
	CDialogEx::DoDataExchange(pDX);
	DDX_Check(pDX, IDD_QXBOX_GROUP_SEND_DS, m_bDS);
	DDX_DateTimeCtrl(pDX, IDD_QXBOX_GROUP_SEND_DS_D, m_tDate);
	DDX_DateTimeCtrl(pDX, IDD_QXBOX_GROUP_SEND_DS_T, m_tTime);
	DDX_Text(pDX, IDD_QXBOX_GROUP_SEND_MOBILEALL, m_strMobileAll);
	DDX_Text(pDX, IDD_QXBOX_GROUP_SEND_MOBILESENT, m_strMobileSent);
	DDX_Text(pDX, IDD_QXBOX_GROUP_SEND_MSG, m_strMsg);
	DDV_MaxChars(pDX, m_strMsg, 1000);
	DDX_Text(pDX, IDD_QXBOX_GROUP_SEND_RECVER, m_strRecver);
	DDX_Text(pDX, IDD_QXBOX_GROUP_SEND_SENDER, m_strSender);
	DDX_Text(pDX, IDD_QXBOX_GROUP_SEND_SENDTIME, m_strSendTime);
	DDX_Control(pDX, IDD_QXBOX_GROUP_SEND_MSG, m_E_Msg);
	DDX_Text(pDX, IDD_QXBOX_GROUP_SEND_IMAGENAME, m_strImageName);
	DDV_MaxChars(pDX, m_strImageName, 500);
	DDX_Text(pDX, IDD_QXBOX_GROUP_SEND_MOBILE, m_strMobile);
	DDV_MaxChars(pDX, m_strMobile, 11);
}


BEGIN_MESSAGE_MAP(DLG_QXBox_Group_Send, CDialogEx)
	ON_BN_CLICKED(IDOK, &DLG_QXBox_Group_Send::OnBnClickedOk)
	ON_BN_CLICKED(IDD_QXBOX_GROUP_SEND_TYPE_TEXT, &DLG_QXBox_Group_Send::OnBnClickedQxboxGroupSendTypeText)
	ON_BN_CLICKED(IDD_QXBOX_GROUP_SEND_TYPE_IMAGE, &DLG_QXBox_Group_Send::OnBnClickedQxboxGroupSendTypeImage)
	ON_BN_CLICKED(IDD_QXBOX_GROUP_SEND_IMAGENAME_S, &DLG_QXBox_Group_Send::OnBnClickedQxboxGroupSendImagenameS)
END_MESSAGE_MAP()


// DLG_QXBox_Group_Send 消息处理程序


BOOL DLG_QXBox_Group_Send::OnInitDialog()
{
	CDialogEx::OnInitDialog();

	m_strSender = m_Send.szSender;
	m_strRecver = m_Send.szGroupName;
	m_strSendTime.Format(_T("%04d.%02d.%02d %02d:%02d") , m_Send.tSubTime.wYear,m_Send.tSubTime.wMonth,m_Send.tSubTime.wDay,m_Send.tSubTime.wHour,m_Send.tSubTime.wMinute);
	m_strMobileAll.Format(_T("%d") , m_Send.lMobileAll);
	m_strMobileSent.Format(_T("%d") , m_Send.lMobileSent);
	COleDateTime tTimer(m_Send.tTimer);
	if ( tTimer.GetStatus() == COleDateTime::valid )
	{
		m_bDS = true;
		m_tDate = tTimer;
		m_tTime = tTimer;
	}
	m_strImageName = m_Send.szMsgImageName;
	m_strMsg = m_strMsgIn;

	if ( m_Send.lMsgDataType ==0 ) //文本
		((CButton *)GetDlgItem(IDD_QXBOX_GROUP_SEND_TYPE_TEXT))->SetCheck(true);

	if ( m_Send.lMsgDataType ==1 ) //图片
		((CButton *)GetDlgItem(IDD_QXBOX_GROUP_SEND_TYPE_IMAGE))->SetCheck(true);

	if ( m_lSendType ==1 ) //查看,不能操作
	{
		GetDlgItem(IDD_QXBOX_GROUP_SEND_DS)->EnableWindow(false);
		GetDlgItem(IDD_QXBOX_GROUP_SEND_DS_D)->EnableWindow(false);
		GetDlgItem(IDD_QXBOX_GROUP_SEND_DS_T)->EnableWindow(false);
		GetDlgItem(IDD_QXBOX_GROUP_SEND_TYPE_TEXT)->EnableWindow(false);
		GetDlgItem(IDD_QXBOX_GROUP_SEND_TYPE_IMAGE)->EnableWindow(false);

		((CEdit*)GetDlgItem(IDD_QXBOX_GROUP_SEND_MSG))->SetReadOnly(true);
		((CEdit*)GetDlgItem(IDD_QXBOX_GROUP_SEND_IMAGENAME))->SetReadOnly(true);
		GetDlgItem(IDD_QXBOX_GROUP_SEND_IMAGENAME_S)->EnableWindow(false);
	}

	OnChangeGroupSendType();

	UpdateData(false);

	return TRUE;  // return TRUE unless you set the focus to a control
	// 异常: OCX 属性页应返回 FALSE
}


void DLG_QXBox_Group_Send::OnBnClickedOk()
{
	if ( !UpdateData(true) )
		return ;

	long lMsgDataType=0;
	if ( ((CButton *)GetDlgItem(IDD_QXBOX_GROUP_SEND_TYPE_IMAGE))->GetCheck() )
		lMsgDataType = 1;

	m_Send.lMsgDataType = lMsgDataType;

/*
	if ( m_strMobile.GetLength()==11 )
	{
		m_Send.lMsgType = 1; //点对点信息。
		_tcscpy(m_Send.szGroupID , m_strMobile );
	}
*/
	_tcscpy(m_Send.szMobile , m_strMobile );

	if ( lMsgDataType==0 )
	{
		if ( m_strMsg.GetLength() <=0 )
		{
			MessageBox(_T("请输入发送信息的内容!") , _T("警告") , MB_ICONWARNING );
			GetDlgItem(IDD_QXBOX_GROUP_SEND_MSG)->SetFocus();
			return ;
		}
		m_strMsgIn = m_strMsg;
	}
	if ( lMsgDataType==1 )
	{
		//判断文件大小是否正确
		CFileStatus status;
		CFile::GetStatus(m_strImageName,status);
		if (status.m_size<=10 || status.m_size > m_lMaxImageSize)
		{
			MessageBox(_T("图片文件过小或过大,无法发送,请重新选择") , _T("错误"),MB_ICONWARNING);
			GetDlgItem(IDD_QXBOX_GROUP_SEND_IMAGENAME_S)->SetFocus();
			return ;
		}
		_tcsncpy(m_Send.szMsgImageName , m_strImageName ,sizeof(m_Send.szMsgImageName)/sizeof(TCHAR));
	}

	if ( m_bDS )
	{
		COleDateTime t(m_tDate.GetYear(),m_tDate.GetMonth(),m_tDate.GetDay(),m_tTime.GetHour(),m_tTime.GetMinute(),m_tTime.GetSecond());
		if ( t.GetStatus() != COleDateTime::valid ||
			t<COleDateTime::GetCurrentTime())
		{
			MessageBox(_T("定时时间格式有误或小于当前时间!") , _T("错误"),MB_ICONWARNING);
			GetDlgItem(IDD_QXBOX_GROUP_SEND_DS_D)->SetFocus();
			return ;
		}
		t.GetAsSystemTime(m_Send.tTimer);
	}
	CDialogEx::OnOK();
}


int DLG_QXBox_Group_Send::SetParam(REQ_QXBox_Group_SendData send,TCHAR * szMsgIn,long lSendType)
{
	m_Send = send;
	m_lSendType = lSendType;
	if ( send.lMsgDataType ==0 ) //文本
		m_strMsgIn =szMsgIn;
	return 0;
}


REQ_QXBox_Group_SendData DLG_QXBox_Group_Send::GetParam(void)
{
	return REQ_QXBox_Group_SendData(m_Send);
}


void DLG_QXBox_Group_Send::OnBnClickedQxboxGroupSendTypeText()
{
	OnChangeGroupSendType();
}


void DLG_QXBox_Group_Send::OnBnClickedQxboxGroupSendTypeImage()
{
	OnChangeGroupSendType();
}

void DLG_QXBox_Group_Send::OnChangeGroupSendType()
{
	long lMsgDataType=0;
	if ( ((CButton *)GetDlgItem(IDD_QXBOX_GROUP_SEND_TYPE_IMAGE))->GetCheck() )
		lMsgDataType = 1;

	if ( lMsgDataType ==0 ) //文本
	{
		GetDlgItem(IDD_QXBOX_GROUP_SEND_MSG)->ShowWindow(SW_SHOW);
		GetDlgItem(IDD_QXBOX_GROUP_SEND_IMAGENAME)->ShowWindow(SW_HIDE);
		GetDlgItem(IDD_QXBOX_GROUP_SEND_IMAGENAME_S)->ShowWindow(SW_HIDE);
	}


	if ( lMsgDataType ==1 ) //图片
	{
		GetDlgItem(IDD_QXBOX_GROUP_SEND_MSG)->ShowWindow(SW_HIDE);
		GetDlgItem(IDD_QXBOX_GROUP_SEND_IMAGENAME)->ShowWindow(SW_SHOW);
		GetDlgItem(IDD_QXBOX_GROUP_SEND_IMAGENAME_S)->ShowWindow(SW_SHOW);
	}

}

void DLG_QXBox_Group_Send::OnBnClickedQxboxGroupSendImagenameS()
{

	TCHAR szFile[ 256 ]={0};
	TCHAR szFileB[ 256 ]={0};
	*szFileB = NULL;

	OPENFILENAME  sOpen;
	sOpen.lStructSize = sizeof( sOpen );
	sOpen.hwndOwner = this->m_hWnd ;
	sOpen.Flags = OFN_EXPLORER|OFN_OVERWRITEPROMPT|OFN_HIDEREADONLY;
	sOpen.lpstrFilter = _T("图片文件\0*.jpg*;*.bmp*;*.gif*\0");
	sOpen.lpstrDefExt = _T("");
	sOpen.lpstrCustomFilter = NULL;
	sOpen.nMaxCustFilter    = 0;
	sOpen.lpstrFile = szFile;
	sOpen.nMaxFile  = sizeof( szFile );
	sOpen.lpstrFileTitle = szFileB;
	sOpen.nMaxFileTitle = sizeof( szFileB );
	sOpen.lpstrInitialDir = NULL;
	sOpen.lpstrTitle = _T("选择发送的图片文件");
	if ( ::GetOpenFileName( &sOpen ) )
	{
		CString strName = sOpen.lpstrFile;
		CString strTemp = strName;
		CString strTemp2;
		strTemp.MakeUpper();
		//判断文件扩展名是否正确
		if ( !(strTemp.Find(_T(".BMP"))>0 || strTemp.Find(_T(".JPG"))>0 || strTemp.Find(_T(".GIF"))>0) )  //为Excel格式的文件
		{
			MessageBox(_T("只支持发送图片文件,请重新选择"),_T("错误"),MB_ICONWARNING);
			return ;
		}
		//判断文件大小是否正确
		CFileStatus status;
		CFile::GetStatus(strName,status);
		if ( status.m_size > m_lMaxImageSize)
		{
			MessageBox(_T("图片文件过大,无法发送,请重新选择") , _T("错误"),MB_ICONWARNING);
			return ;
		}
		if ( !UpdateData(true) )
			return ;
		m_strImageName = strName;
		UpdateData(false);
	}
}