⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dlgsms.cpp

📁 串口收发工具
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// 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 + -