📄 dlgsms.cpp
字号:
// DlgSms.cpp : implementation file
//
#include "stdafx.h"
#include "maintain.h"
#include "DlgSms.h"
#include "mainfrm.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
static int bSmsTimer=0;
char* chLabelBasic[] = {"站名","短信中心号码","口令","口令确认"};
char* chLabelPhoneNo[] = {"号码1","号码2","号码3","号码4","号码5","号码6"};
static int byOldOperate=1;
/////////////////////////////////////////////////////////////////////////////
// CDlgSms dialog
CDlgSms::CDlgSms(CWnd* pParent /*=NULL*/)
: CDialog(CDlgSms::IDD, pParent)
{
//{{AFX_DATA_INIT(CDlgSms)
m_Sms_StationName = _T("");
m_Sms_CenterNo = _T("");
m_Sms_Psw = _T("");
m_Sms_Psw2 = _T("");
m_Sms_TelNo1 = _T("");
m_Sms_TelNo2 = _T("");
m_Sms_TelNo3 = _T("");
m_Sms_TelNo4 = _T("");
m_Sms_TelNo5 = _T("");
m_Sms_TelNo6 = _T("");
m_Sms_TelNoValid1 = FALSE;
m_Sms_TelNoValid2 = FALSE;
m_Sms_TelNoValid3 = FALSE;
m_Sms_TelNoValid4 = FALSE;
m_Sms_TelNoValid5 = FALSE;
m_Sms_TelNoValid6 = FALSE;
//}}AFX_DATA_INIT
bReceiveSmsInfo = false;
bExpand = TRUE;
byCurOperate = 1;
bSetUpRtn = false;
}
void CDlgSms::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDlgSms)
DDX_Text(pDX, IDC_Sms_StationName, m_Sms_StationName);
DDV_MaxChars(pDX, m_Sms_StationName, 24);
DDX_Text(pDX, IDC_Sms_CenterNo, m_Sms_CenterNo);
DDV_MaxChars(pDX, m_Sms_CenterNo, 18);
DDX_Text(pDX, IDC_Sms_Psw, m_Sms_Psw);
DDV_MaxChars(pDX, m_Sms_Psw, 6);
DDX_Text(pDX, IDC_Sms_Psw2, m_Sms_Psw2);
DDV_MaxChars(pDX, m_Sms_Psw2, 6);
DDX_Text(pDX, IDC_Sms_TelNo1, m_Sms_TelNo1);
DDV_MaxChars(pDX, m_Sms_TelNo1, 19);
DDX_Text(pDX, IDC_Sms_TelNo2, m_Sms_TelNo2);
DDV_MaxChars(pDX, m_Sms_TelNo2, 19);
DDX_Text(pDX, IDC_Sms_TelNo3, m_Sms_TelNo3);
DDV_MaxChars(pDX, m_Sms_TelNo3, 19);
DDX_Text(pDX, IDC_Sms_TelNo4, m_Sms_TelNo4);
DDV_MaxChars(pDX, m_Sms_TelNo4, 19);
DDX_Text(pDX, IDC_Sms_TelNo5, m_Sms_TelNo5);
DDV_MaxChars(pDX, m_Sms_TelNo5, 19);
DDX_Text(pDX, IDC_Sms_TelNo6, m_Sms_TelNo6);
DDV_MaxChars(pDX, m_Sms_TelNo6, 19);
DDX_Check(pDX, IDC_Sms_TelNoValid1, m_Sms_TelNoValid1);
DDX_Check(pDX, IDC_Sms_TelNoValid2, m_Sms_TelNoValid2);
DDX_Check(pDX, IDC_Sms_TelNoValid3, m_Sms_TelNoValid3);
DDX_Check(pDX, IDC_Sms_TelNoValid4, m_Sms_TelNoValid4);
DDX_Check(pDX, IDC_Sms_TelNoValid5, m_Sms_TelNoValid5);
DDX_Check(pDX, IDC_Sms_TelNoValid6, m_Sms_TelNoValid6);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CDlgSms, CDialog)
//{{AFX_MSG_MAP(CDlgSms)
ON_BN_CLICKED(IDC_BTN_SMSSETUP, OnBtnSmssetup)
ON_WM_CREATE()
ON_WM_LBUTTONDOWN()
ON_WM_MOUSEMOVE()
ON_WM_DESTROY()
ON_WM_TIMER()
ON_WM_LBUTTONUP()
ON_WM_PAINT()
ON_WM_CTLCOLOR()
ON_BN_CLICKED(IDC_BTN_SMSUPLOAD, OnBtnSmsupload)
ON_WM_SHOWWINDOW()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CDlgSms message handlers
int CDlgSms::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CDialog::OnCreate(lpCreateStruct) == -1)
return -1;
m_brush.CreateSolidBrush(RGB(255,255,255));
CreateFont();
return 0;
}
HBRUSH CDlgSms::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
pDC->SetBkColor(RGB(255,255,255));
return (HBRUSH) m_brush.GetSafeHandle();
}
void CDlgSms::OnBtnSmssetup()
{
UpdateData(TRUE);
if (m_Sms_StationName.GetLength()==0) {
MessageBox(_T("请输入站名!"),_T("提示"),MB_ICONEXCLAMATION);
((CStatic *)GetDlgItem(IDC_Sms_StationName))->SetFocus();
return;
}
if (m_Sms_CenterNo.GetLength()==0) {
MessageBox(_T("请输入短信中心号码!"),_T("提示"),MB_ICONEXCLAMATION);
((CStatic *)GetDlgItem(IDC_Sms_CenterNo))->SetFocus();
return;
}
if (m_Sms_Psw.GetLength()==0) {
MessageBox(_T("请输入密码!"),_T("提示"),MB_ICONEXCLAMATION);
((CStatic *)GetDlgItem(IDC_Sms_Psw))->SetFocus();
return;
}
if (m_Sms_Psw2.GetLength()==0) {
MessageBox(_T("请输入确认密码!"),_T("提示"),MB_ICONEXCLAMATION);
((CStatic *)GetDlgItem(IDC_Sms_Psw2))->SetFocus();
return;
}
if (m_Sms_Psw!=m_Sms_Psw2) {
MessageBox(_T("密码与确认密码不符,请重新输入!"),_T("提示"),MB_ICONEXCLAMATION);
((CStatic *)GetDlgItem(IDC_Sms_Psw2))->SetFocus();
return;
}
if ((m_Sms_TelNo1.GetLength()==0)&&(m_Sms_TelNoValid1)) {
MessageBox(_T("请输入电话号码1!"),_T("提示"),MB_ICONEXCLAMATION);
((CStatic *)GetDlgItem(IDC_Sms_TelNo1))->SetFocus();
return;
}
if ((m_Sms_TelNo2.GetLength()==0)&&(m_Sms_TelNoValid2)) {
MessageBox(_T("请输入电话号码2!"),_T("提示"),MB_ICONEXCLAMATION);
((CStatic *)GetDlgItem(IDC_Sms_TelNo2))->SetFocus();
return;
}
if ((m_Sms_TelNo3.GetLength()==0)&&(m_Sms_TelNoValid3)) {
MessageBox(_T("请输入电话号码3!"),_T("提示"),MB_ICONEXCLAMATION);
((CStatic *)GetDlgItem(IDC_Sms_TelNo3))->SetFocus();
return;
}
if ((m_Sms_TelNo4.GetLength()==0)&&(m_Sms_TelNoValid4)) {
MessageBox(_T("请输入电话号码4!"),_T("提示"),MB_ICONEXCLAMATION);
((CStatic *)GetDlgItem(IDC_Sms_TelNo4))->SetFocus();
return;
}
if ((m_Sms_TelNo5.GetLength()==0)&&(m_Sms_TelNoValid5)) {
MessageBox(_T("请输入电话号码5!"),_T("提示"),MB_ICONEXCLAMATION);
((CStatic *)GetDlgItem(IDC_Sms_TelNo5))->SetFocus();
return;
}
if ((m_Sms_TelNo6.GetLength()==0)&&(m_Sms_TelNoValid6)) {
MessageBox(_T("请输入电话号码6!"),_T("提示"),MB_ICONEXCLAMATION);
((CStatic *)GetDlgItem(IDC_Sms_TelNo6))->SetFocus();
return;
}
SMS_SETUP sms;
memset(&sms,0,sizeof(SMS_SETUP));
CString strTemp = m_Sms_StationName;
int strLen = strTemp.GetLength();
if (strLen<24) strTemp+=":";
strLen = strTemp.GetLength();
unsigned short unicodearray[12];
memset(unicodearray,0,24);
int rtn = MultiByteToWideChar(CP_OEMCP,MB_COMPOSITE,strTemp.GetBuffer(strLen),strLen,unicodearray,12);
for(int i=0;i<12;i++)
{
sms.Name[2*i+1] = LOBYTE(unicodearray[i]);
sms.Name[2*i] = HIBYTE(unicodearray[i]);
}
strTemp.Format("+%s#",m_Sms_CenterNo);
memcpy(sms.Service_number,strTemp.GetBuffer(50),20);
memcpy(sms.Password,m_Sms_Psw.GetBuffer(50),6);
sms.Cellphone_valid[0] = m_Sms_TelNoValid1;
sms.Cellphone_valid[1] = m_Sms_TelNoValid2;
sms.Cellphone_valid[2] = m_Sms_TelNoValid3;
sms.Cellphone_valid[3] = m_Sms_TelNoValid4;
sms.Cellphone_valid[4] = m_Sms_TelNoValid5;
sms.Cellphone_valid[5] = m_Sms_TelNoValid6;
if (m_Sms_TelNoValid1) {
strTemp.Format("%s#",m_Sms_TelNo1);
memcpy(sms.Cellphone_NO[0],strTemp.GetBuffer(50),20);
}
if (m_Sms_TelNoValid2) {
strTemp.Format("%s#",m_Sms_TelNo2);
memcpy(sms.Cellphone_NO[1],strTemp.GetBuffer(50),20);
}
if (m_Sms_TelNoValid3) {
strTemp.Format("%s#",m_Sms_TelNo3);
memcpy(sms.Cellphone_NO[2],strTemp.GetBuffer(50),20);
}
if (m_Sms_TelNoValid4) {
strTemp.Format("%s#",m_Sms_TelNo4);
memcpy(sms.Cellphone_NO[3],strTemp.GetBuffer(50),20);
}
if (m_Sms_TelNoValid5) {
strTemp.Format("%s#",m_Sms_TelNo5);
memcpy(sms.Cellphone_NO[4],strTemp.GetBuffer(50),20);
}
if (m_Sms_TelNoValid6) {
strTemp.Format("%s#",m_Sms_TelNo6);
memcpy(sms.Cellphone_NO[5],strTemp.GetBuffer(50),20);
}
((CMainFrame*)AfxGetMainWnd())->SetSMS(sms);
m_ReturnInfo = _T("参数设置....");
RedrawWindow(rcInfo);
SetTimer(2,5000,NULL);
}
BOOL CDlgSms::OnInitDialog()
{
CDialog::OnInitDialog();
CRect rcBack,rcTitle,rcTemp;
((CStatic *)GetDlgItem(IDC_STATIC_BACK_LEFT))->GetWindowRect(rcBack);
ScreenToClient(rcBack);
((CStatic *)GetDlgItem(IDC_STATIC_UP_NORMAL))->GetWindowRect(rcTitle);
((CStatic *)GetDlgItem(IDC_STATIC_DOWN_NORMAL))->MoveWindow(rcBack.TopLeft().x+1,rcBack.TopLeft().y+3,rcTitle.Width(),rcTitle.Height());
((CStatic *)GetDlgItem(IDC_STATIC_DOWN_NORMAL))->ShowWindow(SW_SHOW);
((CStatic *)GetDlgItem(IDC_STATIC_UP_NORMAL))->MoveWindow(rcBack.TopLeft().x+1,rcBack.TopLeft().y+3,rcTitle.Width(),rcTitle.Height());
((CStatic *)GetDlgItem(IDC_STATIC_UP_CLICK))->MoveWindow(rcBack.TopLeft().x+1,rcBack.TopLeft().y+3,rcTitle.Width(),rcTitle.Height());
((CStatic *)GetDlgItem(IDC_STATIC_UP_MOUSEMOVE))->MoveWindow(rcBack.TopLeft().x+1,rcBack.TopLeft().y+3,rcTitle.Width(),rcTitle.Height());
((CStatic *)GetDlgItem(IDC_STATIC_DOWN_CLICK))->MoveWindow(rcBack.TopLeft().x+1,rcBack.TopLeft().y+3,rcTitle.Width(),rcTitle.Height());
((CStatic *)GetDlgItem(IDC_STATIC_DOWN_MOUSEMOVE))->MoveWindow(rcBack.TopLeft().x+1,rcBack.TopLeft().y+3,rcTitle.Width(),rcTitle.Height());
CRect rcSetup;
((CStatic *)GetDlgItem(IDC_STATIC_BASIC_SETUP1))->GetWindowRect(rcSetup);
((CStatic *)GetDlgItem(IDC_STATIC_UP_NORMAL))->GetWindowRect(rcTitle);
ScreenToClient(rcTitle);
((CStatic *)GetDlgItem(IDC_STATIC_BASIC_SETUP2))->MoveWindow(rcBack.TopLeft().x+1,rcBack.TopLeft().y+rcTitle.Height()+4,rcSetup.Width(),rcSetup.Height());
((CStatic *)GetDlgItem(IDC_STATIC_BASIC_SETUP1))->MoveWindow(rcBack.TopLeft().x+1,rcBack.TopLeft().y+rcTitle.Height()+4,rcSetup.Width(),rcSetup.Height());
((CStatic *)GetDlgItem(IDC_STATIC_BASIC_SETUP2))->ShowWindow(SW_SHOW);
((CStatic *)GetDlgItem(IDC_STATIC_BASIC_SETUP1))->GetWindowRect(rcTitle);
((CStatic *)GetDlgItem(IDC_STATIC_TELNO_SETUP1))->GetWindowRect(rcSetup);
ScreenToClient(rcTitle);
((CStatic *)GetDlgItem(IDC_STATIC_TELNO_SETUP1))->MoveWindow(rcTitle.TopLeft().x,rcTitle.TopLeft().y+rcTitle.Height()+1,rcSetup.Width(),rcSetup.Height());
((CStatic *)GetDlgItem(IDC_STATIC_TELNO_SETUP2))->MoveWindow(rcTitle.TopLeft().x,rcTitle.TopLeft().y+rcTitle.Height()+1,rcSetup.Width(),rcSetup.Height());
((CStatic *)GetDlgItem(IDC_STATIC_TELNO_SETUP1))->ShowWindow(SW_SHOW);
// TODO: Add extra initialization here
m_Sms_StationName.Empty();
m_Sms_CenterNo.Empty();
m_Sms_Psw.Empty();
m_Sms_Psw2.Empty();
m_Sms_TelNo1.Empty();
m_Sms_TelNo2.Empty();
m_Sms_TelNo3.Empty();
m_Sms_TelNo4.Empty();
m_Sms_TelNo5.Empty();
m_Sms_TelNo6.Empty();
m_Sms_TelNoValid1=false;
m_Sms_TelNoValid2=false;
m_Sms_TelNoValid3=false;
m_Sms_TelNoValid4=false;
m_Sms_TelNoValid5=false;
m_Sms_TelNoValid6=false;
UpdateData(false);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CDlgSms::SetupSmsReturn(int n)
{
switch(n) {
case 0:
m_ReturnInfo = _T("参数设置返回正确!");
break;
case 1:
m_ReturnInfo = _T("参数设置返回错误!");
break;
case -1:
m_ReturnInfo = _T("上装参数命令未返回!");
break;
default:
break;
}
bSetUpRtn = (n>=0)?true:false;
if (bSetUpRtn)
KillTimer(2);
RedrawWindow(rcInfo);
}
void CDlgSms::InitSmsInfo(SMS_SETUP p)
{
bReceiveSmsInfo = true;
//取出站名
wchar_t wstr[12];
for(int i=0;i<12;i++)
{
wstr[i] = MAKEWORD(p.Name[2*i+1],p.Name[2*i]);
if (wstr[i]==0x003a) wstr[i]=0;
}
CString strName,strTemp;
char buf[24];
WideCharToMultiByte(CP_ACP,0,wstr,12,buf,24,NULL,NULL);
strName = buf;
//
m_Sms_StationName = strName;
strTemp = p.Service_number;
m_Sms_CenterNo = strTemp.Mid(1,strTemp.Find("#")-1);
strTemp = p.Password;
m_Sms_Psw = strTemp.Left(6);
m_Sms_Psw2 = strTemp.Left(6);
strTemp = p.Cellphone_NO[0];
m_Sms_TelNo1 = strTemp.Mid(0,strTemp.Find("#"));
strTemp = p.Cellphone_NO[1];
m_Sms_TelNo2 = strTemp.Mid(0,strTemp.Find("#"));
strTemp = p.Cellphone_NO[2];
m_Sms_TelNo3 = strTemp.Mid(0,strTemp.Find("#"));
strTemp = p.Cellphone_NO[3];
m_Sms_TelNo4 = strTemp.Mid(0,strTemp.Find("#"));
strTemp = p.Cellphone_NO[4];
m_Sms_TelNo5 = strTemp.Mid(0,strTemp.Find("#"));
strTemp = p.Cellphone_NO[5];
m_Sms_TelNo6 = strTemp.Mid(0,strTemp.Find("#"));
m_Sms_TelNoValid1 = p.Cellphone_valid[0];
m_Sms_TelNoValid2 = p.Cellphone_valid[1];
m_Sms_TelNoValid3 = p.Cellphone_valid[2];
m_Sms_TelNoValid4 = p.Cellphone_valid[3];
m_Sms_TelNoValid5 = p.Cellphone_valid[4];
m_Sms_TelNoValid6 = p.Cellphone_valid[5];
m_ReturnInfo = _T("短信息模块参数返回正确!");
UpdateData(FALSE);
RedrawWindow(rcInfo);
}
void CDlgSms::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CRect rcTitle,rcBasic,rcTelno;
((CStatic *)GetDlgItem(IDC_STATIC_UP_NORMAL))->GetWindowRect(rcTitle);
((CStatic *)GetDlgItem(IDC_STATIC_BASIC_SETUP1))->GetWindowRect(rcBasic);
((CStatic *)GetDlgItem(IDC_STATIC_TELNO_SETUP1))->GetWindowRect(rcTelno);
ScreenToClient(rcBasic);ScreenToClient(rcTelno);ScreenToClient(rcTitle);
if (bExpand)
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -