272 lines
7.7 KiB
C++
272 lines
7.7 KiB
C++
// 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);
|
|
}
|
|
}
|