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

📄 smscomdlg.cpp

📁 sms sender 察到布局图全貌
💻 CPP
📖 第 1 页 / 共 4 页
字号:
				DispMsg(_T("发送短消息出错:")+szErr);
#ifdef MY_DEBUG_MSG
				MessageBox(szErr,"发送短消息出错",MB_OK | MB_ICONWARNING);
#else
#ifdef _DEBUG
	            TRACE("发送短消息出错:"+szErr);
#endif
#endif
			}
			else
    			AddSMMsgToSndSMList(szPhoneCode,szSMText);
			Sleep(1000);
			m_ctrlGsmSms.GetRebackMessgae(m_ctrlSMSCom,szRcvMsg,szErr);

			p=(char *)lParam;
        	if(p!=NULL)
	        	delete p;//必须删除
			break;
		}
		case DIAL_MSG_CLASS://拨号
		{
			szSndMsg=(LPCTSTR)lParam;
#ifdef MY_DEBUG_MSG
//	        MessageBox(szSndMsg);
#else
#ifdef _DEBUG
	        TRACE(szSndMsg);
#endif
#endif
			szDialedPhoneCode=szSndMsg;
			m_ctrlGsmSms.SetDialedPhoneCode(szDialedPhoneCode);
        	if(m_ctrlGsmSms.Dial(m_ctrlSMSCom,szErr)==FALSE)
			{
#ifdef MY_DEBUG_MSG
				MessageBox(szErr,"拨打电话出错",MB_OK | MB_ICONWARNING);
#else
#ifdef _DEBUG
	            TRACE("拨打电话出错"+szErr);
#endif
#endif
			}
			Sleep(500);
        	m_ctrlGsmSms.GetRebackMessgae(m_ctrlSMSCom,szRcvMsg,szErr);

			p=(char *)lParam;
        	if(p!=NULL)
	        	delete p;//必须删除

			break;
		}
		case HANGUP_MSG_CLASS://挂机
		{
			if(m_ctrlGsmSms.Hangup(m_ctrlSMSCom,szErr)==FALSE)
			{
#ifdef MY_DEBUG_MSG
				MessageBox(szErr,"挂断电话出错",MB_OK | MB_ICONWARNING);
#else
#ifdef _DEBUG
	            TRACE("挂断电话出错"+szErr);
#endif
#endif
			}
			Sleep(500);
			m_ctrlGsmSms.GetRebackMessgae(m_ctrlSMSCom,szRcvMsg,szErr);
			lParam=(LPARAM)NULL;
			break;
		}
        default:
			return -1;
	}
	return 0;
}

void CSmsComDlg::AddSMMsgToSndSMList(CString &szTPCode,CString &szSMText)
{
	LV_ITEM lvitem;
	int itemno=0;
	CString szTmp;


    itemno=m_ctrlSndSMList.GetItemCount();

	if(itemno>1000)
		m_ctrlSndSMList.DeleteAllItems();

	lvitem.mask=LVIF_TEXT;
	lvitem.iItem=0;
	szTmp.Format("%d",itemno+1);
	lvitem.pszText=(LPTSTR)((LPCTSTR)szTmp);
	lvitem.iSubItem=0;
	lvitem.iImage=-1;
	m_ctrlSndSMList.InsertItem(&lvitem);//序号
 
	CTime curtime=CTime::GetCurrentTime();
	szTmp=curtime.Format("%H:%M:%S/%d/%m/%Y");
	lvitem.mask=LVIF_TEXT;
	lvitem.iItem=0;
	lvitem.pszText=(LPTSTR)((LPCTSTR)szTmp);
	lvitem.iSubItem=1;
	m_ctrlSndSMList.SetItem(&lvitem);//时间

	lvitem.mask=LVIF_TEXT;
	lvitem.iItem=0;
	lvitem.pszText=(LPTSTR)((LPCTSTR)szTPCode);
	lvitem.iSubItem=2;
	m_ctrlSndSMList.SetItem(&lvitem);//收方手机

	lvitem.mask=LVIF_TEXT;
	lvitem.iItem=0;
	lvitem.pszText=(LPTSTR)((LPCTSTR)szSMText);
	lvitem.iSubItem=3;
	m_ctrlSndSMList.SetItem(&lvitem);//消息内容
}

/*****
void CSmsComDlg::AddSMMsgToRcvSMList(CString &szTPCode, CString &szSMText)
{
	LV_ITEM lvitem;
	int itemno=0;

    itemno=m_ctrlRcvSMList.GetItemCount();

	if(itemno>1000)
		m_ctrlRcvSMList.DeleteAllItems();

	lvitem.mask=LVIF_TEXT;
	lvitem.iItem=0;
	lvitem.pszText=(LPTSTR)((LPCTSTR)szTPCode);
	lvitem.iSubItem=0;
	lvitem.iImage=-1;
	m_ctrlRcvSMList.InsertItem(&lvitem);
 
	lvitem.mask=LVIF_TEXT;
	lvitem.iItem=0;
	lvitem.pszText=(LPTSTR)((LPCTSTR)szSMText);
	lvitem.iSubItem=1;
	m_ctrlRcvSMList.SetItem(&lvitem);
}

 ******/


void CSmsComDlg::OnReselCenterButn() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	CString szBtnText;
	if(m_nReselCenterBtnFlag==1)//当前为修改Button
	{
	    CReadDB db;
		POSITION pos;
		CStringList szMoniUnitNameList;
		CString szMoniUnitName;
		if(db.GetMoniUnitName(&szMoniUnitNameList)==TRUE)
		{
			m_ctrlCenterName.GetWindowText(szMoniUnitName);
			m_ctrlCenterName.ResetContent();
			pos=szMoniUnitNameList.GetHeadPosition();
     		for(int i=0;i<szMoniUnitNameList.GetCount();i++)
			{
				m_ctrlCenterName.AddString(szMoniUnitNameList.GetAt(pos));
	    		szMoniUnitNameList.GetNext(pos);
			}
			if(m_ctrlCenterName.GetCount()>0) 
			{
				int nret=m_ctrlCenterName.FindString(0,szMoniUnitName);
				if(nret==CB_ERR)
					m_ctrlCenterName.SetCurSel(0);
				else
					m_ctrlCenterName.SetCurSel(nret);

				m_ctrlCenterName.GetWindowText(szMoniUnitName);
				CString szMoniUnitID;
				if(db.GetMoniUnitIDByMoniUnitName(szMoniUnitName,szMoniUnitID)==TRUE)
				{
					if(!szMoniUnitID.IsEmpty())
					{
						CString szSMCIAC,szSMCCode,szMTIAC,szMTCode;
						if(db.GetSmsSettingMsg(szMoniUnitID,szSMCIAC,szSMCCode,szMTIAC,szMTCode)==TRUE)
						{
							m_szInterAreaSMCCode=szSMCIAC;
							m_szSMSCCode=szSMCCode;
							m_szInterAreaMTCode=szMTIAC;
							m_szPhoneCode=szMTCode;
						}
						else
						{
							CString idgetstr,szcap;
							idgetstr.LoadString(IDS_READDB_ERROR);
							szcap.LoadString(IDS_READDB_CAPTION_SMSETTING);
							MessageBox(idgetstr,szcap,MB_OK | MB_ICONWARNING);
						//	return;
						}
					}
				}
			//	else
			//		return;
			}
			szBtnText.LoadString(IDS_RECENTER_BTN_SAVETEXT);
		    m_nReselCenterBtnFlag=2;//变为存档Button
		    m_ctrlCenterName.EnableWindow(TRUE);
			((CEdit *)GetDlgItem(IDC_SMSC_CODE_EDIT))->EnableWindow(TRUE);
			((CEdit *)GetDlgItem(IDC_INTER_AREA_SMCCODE_EDIT))->EnableWindow(TRUE);
			((CEdit *)GetDlgItem(IDC_INTER_AREA_MTCODE_EDIT))->EnableWindow(TRUE);
		}
		else
		{
			CString idgetstr,szcap;
			idgetstr.LoadString(IDS_RECENTER_BTN_REVISE_WARNING);
			szcap.LoadString(IDS_RECENTER_BTN_REVISE_CAPTION);
			MessageBox(idgetstr,szcap,MB_OK | MB_ICONWARNING);
            m_ctrlCenterName.SetFocus();
			return;
		}
	}
	else //当前为存档Button
	{
 		CReadDB db;
		CString szMoniUnitName;
		CString temp,fmt;		
		if(m_szInterAreaSMCCode.IsEmpty())
		{

			fmt.LoadString(IDS_WARNING_SMCIAC);
			temp.LoadString(IDS_HEADER_INITIAL);
			 MessageBox(fmt,temp,MB_ICONSTOP | MB_OK);
			((CEdit *)GetDlgItem(IDC_INTER_AREA_SMCCODE_EDIT))->SetFocus();
			return;
		}
		if(m_szSMSCCode.IsEmpty())
		{
			fmt.LoadString(IDS_WARNING_SMCCODE);
			temp.LoadString(IDS_HEADER_INITIAL);
			 MessageBox(fmt,temp,MB_ICONSTOP | MB_OK);
			((CEdit *)GetDlgItem(IDC_SMSC_CODE_EDIT))->SetFocus();
			return;
		}
		if(m_ctrlCenterName.GetCount()<=0)
		{
			CString idgetstr,szcap;
			idgetstr.LoadString(IDS_WARNING_SRVCENTER);
			szcap.LoadString(IDS_SAVEDB_CAPTION);
			MessageBox(idgetstr,szcap,MB_OK | MB_ICONWARNING);
            m_ctrlCenterName.SetFocus();
			return;
		}
	    m_ctrlCenterName.GetWindowText(szMoniUnitName);
		CString szMoniUnitID;
		if(db.GetMoniUnitIDByMoniUnitName(szMoniUnitName,szMoniUnitID)==TRUE)
		{
			if(db.SaveSmsSettingMsgToDB(szMoniUnitID,m_szInterAreaSMCCode,m_szSMSCCode,m_szInterAreaMTCode,m_szPhoneCode)==FALSE)
			{
			    CString idgetstr,szcap;
				idgetstr.LoadString(IDS_DBCONNECT_SAVE_ERROR);
				szcap.LoadString(IDS_SAVEDB_CAPTION);
				MessageBox(idgetstr,szcap,MB_OK | MB_ICONWARNING);
				return;
			}

			szBtnText.LoadString(IDS_RECENTER_BTN_REVISETEXT);
			m_nReselCenterBtnFlag=1;//变为修改Button
			m_ctrlCenterName.EnableWindow(FALSE);
    		((CEdit *)GetDlgItem(IDC_SMSC_CODE_EDIT))->EnableWindow(FALSE);
    		((CEdit *)GetDlgItem(IDC_INTER_AREA_SMCCODE_EDIT))->EnableWindow(FALSE);
    		((CEdit *)GetDlgItem(IDC_INTER_AREA_MTCODE_EDIT))->EnableWindow(FALSE);

			AfxGetApp()->WriteProfileString(s_profileHeading,s_profileMoniUnitName,szMoniUnitName);
		}
		else return;
	}
 	((CButton *)GetDlgItem(IDC_RESEL_CENTER_BUTN))->SetWindowText(szBtnText);
	UpdateData(FALSE);
}

void CSmsComDlg::OnSelchangeCenterName() 
{
	// TODO: Add your control notification handler code here
	CReadDB db;
	CString szMoniUnitName,szMoniUnitID;
	int nret;
	nret=m_ctrlCenterName.GetCurSel();
	if(nret==CB_ERR)
		return;
	m_ctrlCenterName.GetLBText(nret,szMoniUnitName.GetBuffer(m_ctrlCenterName.GetLBTextLen(nret)));
	szMoniUnitName.ReleaseBuffer();
	if(db.GetMoniUnitIDByMoniUnitName(szMoniUnitName,szMoniUnitID)==TRUE)
	{
		if(!szMoniUnitID.IsEmpty())
		{
			CString szSMCIAC,szSMCCode,szMTIAC,szMTCode;
			if(db.GetSmsSettingMsg(szMoniUnitID,szSMCIAC,szSMCCode,szMTIAC,szMTCode)==TRUE)
			{
				m_szInterAreaSMCCode=szSMCIAC;
				m_szSMSCCode=szSMCCode;
				m_szInterAreaMTCode=szMTIAC;
				m_szPhoneCode=szMTCode;
			}
			else
			{
				CString idgetstr,szcap;
				idgetstr.LoadString(IDS_READDB_ERROR);
				szcap.LoadString(IDS_READDB_CAPTION_SMSETTING);
				MessageBox(idgetstr,szcap,MB_OK | MB_ICONWARNING);
				m_szInterAreaSMCCode=_T("");
				m_szSMSCCode=_T("");
				m_szInterAreaMTCode=_T("");
				m_szPhoneCode=_T("");
			}
		}
	}
	UpdateData(FALSE);
}

BOOL CSmsComDlg::InitByStationID(CString szStationID)
{
    CReadDB db;
	POSITION pos;
	int nCnt=0;
	CString szSetting,szStationName;
   	CString szMoniUnitName,szDispMsg;	
			
	szMoniUnitName=_T("");

	szStationID.TrimLeft();
	szStationID.TrimRight();

    CStringList szMoniUnitNameList;
	if(db.GetMoniUnitName(&szMoniUnitNameList)==TRUE)
	{
		pos=szMoniUnitNameList.GetHeadPosition();
		m_ctrlCenterName.ResetContent();
     	for(int i=0;i<szMoniUnitNameList.GetCount();i++)
		{
	    	m_ctrlCenterName.AddString(szMoniUnitNameList.GetAt(pos));
	    	szMoniUnitNameList.GetNext(pos);
		}
	}
	else
	{
		DispMsg(_T("读取监测中心名[监测中心表=>无数据]!"));
		return FALSE;
	}

	if(m_ctrlCenterName.GetCount()>0) 
	{
	
		CString szMoniUnitID;
		if(db.GetMoniUnitIDByStationID(szStationID,szMoniUnitID,szStationName)==TRUE)
		{
			szStationName.TrimLeft();
			szStationName.TrimRight();

			szDispMsg=_T("收到来自站{[")+szStationID+_T("]")+szStationName+_T("}的告警");
            DispMsg(szDispMsg);
			//DispMsg(_T("收到来自站{[")+szStationID+_T("]")+szStationName+_T("}的告警"));
			if(!szMoniUnitID.IsEmpty())
			{
				if(db.GetMoniUnitNameByMoniUnitID(szMoniUnitID,szMoniUnitName)==TRUE)
				{
					szMoniUnitName.TrimLeft();
					szMoniUnitName.TrimRight();
					int nret=m_ctrlCenterName.FindString(0,szMoniUnitName);
					if(nret==CB_ERR)
						m_ctrlCenterName.SetCurSel(0);
					else
						m_ctrlCenterName.SetCurSel(nret);
				}
				else
				{
					DispMsg(_T("站[")+szStationID+_T("][")+szStationName+_T("对应的中心ID")+szMoniUnitID+_T("在中心表中无对应中心!"));
					return FALSE;
				}
				CString szSMCIAC,szSMCCode,szMTIAC,szMTCode;
				if(db.GetSmsSettingMsg(szMoniUnitID,szSMCIAC,szSMCCode,szMTIAC,szMTCode)==TRUE)
				{
					m_ctrlGsmSms.SetSMCInterAreaCode(szSMCIAC);
					m_ctrlGsmSms.SetSMSCCode(szSMCCode);
					m_ctrlGsmSms.SetMTInterAreaCode(szMTIAC);
					m_ctrlGsmSms.SetCalledPhoneCode(szMTCode);
				}
				else
				{
					/***/
					CString idgetstr,szcap;
					idgetstr.LoadString(IDS_READDB_ERROR);
					szcap.LoadString(IDS_READDB_CAPTION_SMSETTING);
					DispMsg(_T("读取中心:[")+szMoniUnitName+_T("] : ")+szcap+_T("=>")+idgetstr);
					//MessageBox(idgetstr,szcap,MB_OK | MB_ICONWARNING);
					/****/
					return FALSE;
				}

				m_ctrlGsmSms.AddToMTCodeList(szSetting,1);//清空
				if(m_ctrlGsmSms.ReadMTCodeFromDBSet(szMoniUnitID,nCnt)==FALSE)
				{
					/**/
				    CString idgetstr,szcap;
					idgetstr.LoadString(IDS_READDB_ERROR);
					szcap.LoadString(IDS_READDB_CAPTION_SMMTLIST);
					//MessageBox(idgetstr,szcap,MB_OK | MB_ICONWARNING);
					DispMsg(_T("读取中心:[")+szMoniUnitName+_T("] : ")+szcap+_T("=>")+idgetstr);
					/****/
					return FALSE;
				}
			}
			else
			{
				DispMsg(_T("未找到站[")+szStationID+_T("][")+szStationName+_T("的所属中心"));
				return FALSE;
			}
		}
	}

	DispMsg(_T("将告警信息发往中心[")+szMoniUnitName+_T("]...."));

	m_ctrlCenterName.EnableWindow(FALSE);
	((CEdit *)GetDlgItem(IDC_SMSC_CODE_EDIT))->EnableWindow(FALSE);
	((CEdit *)GetDlgItem(IDC_INTER_AREA_SMCCODE_EDIT))->EnableWindow(FALSE);
	((CEdit *)GetDlgItem(IDC_INTER_AREA_MTCODE_EDIT))->EnableWindow(FALSE);

	m_ctrlGsmSms.GetSMSCCode(m_szSMSCCode);
    m_ctrlGsmSms.GetCalledPhoneCode(m_szPhoneCode);
//	m_ctrlGsmSms.GetShortMessageContext(m_szSMText);
	m_ctrlGsmSms.GetSMCInterAreaCode(m_szInterAreaSMCCode);
	m_ctrlGsmSms.GetMTInterAreaCode(m_szInterAreaMTCode);

	
	CString fmt,temp;
	fmt.LoadString(IDS_PROMT_MTLIST_CNT);
	szSetting.Format(fmt,nCnt);
	temp+=szSetting;
	fmt.LoadString(IDS_PROMT_IAC);
	temp+=fmt;
	temp+=_T("SMC:");
	temp+=m_szInterAreaSMCCode;
	temp+=_T(";MT:");
	temp+=m_szInterAreaMTCode;
	temp+=_T("  SMSCA:");
	temp+=m_szSMSCCode;
	int npos=m_szCurSettingPrompt.Find(_T("MT"));
    m_szCurSettingPrompt=m_szCurSettingPrompt.Left(npos)+temp;
	
    UpdateData(FALSE);
	return TRUE;
}
void CSmsComDlg::DispMsg(CString szMsg, int nColor)
{
	CString sTime;
	CTime   tTime=CTime::GetCurrentTime();
	sTime=tTime.Format("%H:%M:%S ");
	szMsg=sTime+szMsg;
	//m_ctrlMsgTipsEdt.AppendText(szMsg,nColor);
	int nLen=m_ctrlMsgTipsEdt.GetWindowTextLength();
	if(nLen>0)
		szMsg="\r\n"+szMsg;
//	m_ctrlMsgTipsEdt.SetColor(nColor);
	m_ctrlMsgTipsEdt.SetFocus();
	m_ctrlMsgTipsEdt.SetSel(nLen,nLen);
	m_ctrlMsgTipsEdt.ReplaceSel(szMsg);
	m_ctrlMsgTipsEdt.Invalidate();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -