// 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 || tSetFocus(); 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); } }