📄 smscomdlg.cpp
字号:
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 + -