remoteatminfo.cpp
来自「监控开发资料,提供二次开发源码和使用说明书」· C++ 代码 · 共 273 行
CPP
273 行
// RemoteATMInfo.cpp : implementation file
//
#include "stdafx.h"
#include "newclient.h"
#include "RemoteATMInfo.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CRemoteATMInfo dialog
CRemoteATMInfo::CRemoteATMInfo(CWnd* pParent /*=NULL*/)
: CDialog(CRemoteATMInfo::IDD, pParent)
{
//{{AFX_DATA_INIT(CRemoteATMInfo)
m_csBusinessCode = _T("");
m_csBusinessCode5 = _T("");
m_dwBusinessStart = 0;
m_dwBusinessLen = 0;
m_dwCardNumInfoLen = 0;
m_dwCardNumInfoStart = 0;
m_dwCardLenInfoLen = 0;
m_dwCardLenInfoStart = 0;
m_sATMIP = _T("");
m_sMessageInfo = _T("");
m_dwMessageLen = 0;
m_dwMessageStart = 0;
//}}AFX_DATA_INIT
}
void CRemoteATMInfo::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CRemoteATMInfo)
DDX_Control(pDX, IDC_COMBOTYPE5, m_Type5Ctrl);
DDX_Control(pDX, IDC_COMBOTYPE, m_TypeCtrl);
DDX_Control(pDX, IDC_COMBOINPUTTYPE, m_InputTypeCtrl);
DDX_Control(pDX, IDC_COMBOATMTYPE, m_ATMTypeCtrl);
DDX_Text(pDX, IDC_BUSINESSCODE, m_csBusinessCode);
DDX_Text(pDX, IDC_BUSINESSCODE5, m_csBusinessCode5);
DDX_Text(pDX, IDC_BUSINESSSTART, m_dwBusinessStart);
DDX_Text(pDX, IDC_BUSINESSLEN, m_dwBusinessLen);
DDX_Text(pDX, IDC_CARDNUMINFOLEN, m_dwCardNumInfoLen);
DDX_Text(pDX, IDC_CARDNUMINFOSTART, m_dwCardNumInfoStart);
DDX_Text(pDX, IDC_CARDNUMLENINFOLEN, m_dwCardLenInfoLen);
DDX_Text(pDX, IDC_CARDNUMLENINFOSTART, m_dwCardLenInfoStart);
DDX_Text(pDX, IDC_EDITATMIP, m_sATMIP);
DDX_Text(pDX, IDC_MESSAGEINFO, m_sMessageInfo);
DDX_Text(pDX, IDC_MESSAGELEN, m_dwMessageLen);
DDX_Text(pDX, IDC_MESSAGESTART, m_dwMessageStart);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CRemoteATMInfo, CDialog)
//{{AFX_MSG_MAP(CRemoteATMInfo)
ON_CBN_SELCHANGE(IDC_COMBOINPUTTYPE, OnSelchangeComboinputtype)
ON_CBN_SELCHANGE(IDC_COMBOTYPE, OnSelchangeCombotype)
ON_CBN_SELCHANGE(IDC_COMBOTYPE5, OnSelchangeCombotype5)
ON_BN_CLICKED(IDATMOK, OnAtmok)
ON_BN_CLICKED(ID_EXIT, OnExit)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CRemoteATMInfo message handlers
BOOL CRemoteATMInfo::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
CRect rc(0, 0, 0, 0);
GetParent()->GetClientRect(&rc);
((CTabCtrl*)GetParent())->AdjustRect(FALSE, &rc);
MoveWindow(&rc);
m_bSetPara = FALSE;
m_bInputMode = FALSE;
m_nTypeSel = 0;
if(m_bConnectServer)
{
if(NET_DVR_ClientGetframeformat(m_lServerID, &m_ATMInfo))
{
m_InputTypeCtrl.SetCurSel(m_ATMInfo.dwInputMode);
m_sATMIP.Format("%s", m_ATMInfo.sATMIP);
m_ATMTypeCtrl.SetCurSel(m_ATMInfo.dwATMType);
if(m_ATMInfo.dwInputMode == 0)
{
m_bInputMode = TRUE;
m_dwMessageStart = m_ATMInfo.dwFrameSignBeginPos;
m_dwMessageLen = m_ATMInfo.dwFrameSignLength;
m_sMessageInfo.Format("%s", m_ATMInfo.byFrameSignContent);
m_dwCardLenInfoStart = m_ATMInfo.dwCardLengthInfoBeginPos;
m_dwCardLenInfoLen = m_ATMInfo.dwCardLengthInfoLength;
m_dwCardNumInfoStart = m_ATMInfo.dwCardNumberInfoBeginPos;
m_dwCardNumInfoLen = m_ATMInfo.dwCardNumberInfoLength;
m_dwBusinessStart = m_ATMInfo.dwBusinessTypeBeginPos;
m_dwBusinessLen = m_ATMInfo.dwBusinessTypeLength;
m_TypeCtrl.SetCurSel(m_nTypeSel);
m_csBusinessCode.Format("%s", m_ATMInfo.frameTypeCode[m_nTypeSel].code);
}
else
{
m_bInputMode = FALSE;
m_Type5Ctrl.SetCurSel(m_nTypeSel);
m_csBusinessCode5.Format("%s", m_ATMInfo.frameTypeCode[m_nTypeSel].code);
}
EnableControl(m_bInputMode);
}
else
{
AfxMessageBox("获取交易信息失败!");
}
}
UpdateData(FALSE);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CRemoteATMInfo::OnSelchangeComboinputtype()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
if(m_InputTypeCtrl.GetCurSel() == 0)
{
m_bInputMode = TRUE;
}
else
{
m_bInputMode = FALSE;
}
EnableControl(m_bInputMode);
}
void CRemoteATMInfo::OnSelchangeCombotype()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
memcpy(m_ATMInfo.frameTypeCode[m_nTypeSel].code,m_csBusinessCode,12);
m_nTypeSel = m_TypeCtrl.GetCurSel();
m_csBusinessCode.Format("%s", m_ATMInfo.frameTypeCode[m_nTypeSel].code);
UpdateData(FALSE);
}
void CRemoteATMInfo::OnSelchangeCombotype5()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
memcpy(m_ATMInfo.frameTypeCode[m_nTypeSel].code,m_csBusinessCode5,12);
m_nTypeSel = m_Type5Ctrl.GetCurSel();
m_csBusinessCode5.Format("%s", m_ATMInfo.frameTypeCode[m_nTypeSel].code);
UpdateData(FALSE);
}
void CRemoteATMInfo::EnableControl(BOOL bEnable)
{
if(bEnable)
{
GetDlgItem(IDC_STATIC1)->SetWindowText("报文标志位");
GetDlgItem(IDC_STATIC11)->SetWindowText("起始位置");
GetDlgItem(IDC_STATIC12)->SetWindowText("长度");
GetDlgItem(IDC_COMBOTYPE5)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_BUSINESSCODE5)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_MESSAGELEN)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_MESSAGESTART)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_STATIC13)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_MESSAGEINFO)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_STATIC2)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_STATIC21)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_STATIC22)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_STATIC3)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_STATIC31)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_STATIC32)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_STATIC4)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_STATIC41)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_STATIC42)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_STATIC43)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_STATIC44)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_CARDNUMLENINFOSTART)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_CARDNUMLENINFOLEN)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_CARDNUMINFOSTART)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_CARDNUMINFOLEN)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_BUSINESSSTART)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_BUSINESSLEN)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_COMBOTYPE)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_BUSINESSCODE)->ShowWindow(SW_SHOW);
}
else
{
GetDlgItem(IDC_STATIC1)->SetWindowText("交易类型");
GetDlgItem(IDC_STATIC11)->SetWindowText("类型");
GetDlgItem(IDC_STATIC12)->SetWindowText("代码");
GetDlgItem(IDC_COMBOTYPE5)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_BUSINESSCODE5)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_MESSAGELEN)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_MESSAGESTART)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_STATIC13)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_MESSAGEINFO)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_STATIC2)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_STATIC21)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_STATIC22)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_STATIC3)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_STATIC31)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_STATIC32)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_STATIC4)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_STATIC41)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_STATIC42)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_STATIC43)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_STATIC44)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_CARDNUMLENINFOSTART)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_CARDNUMLENINFOLEN)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_CARDNUMINFOSTART)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_CARDNUMINFOLEN)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_BUSINESSSTART)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_BUSINESSLEN)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_COMBOTYPE)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_BUSINESSCODE)->ShowWindow(SW_HIDE);
}
}
void CRemoteATMInfo::OnAtmok()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
m_ATMInfo.dwInputMode = m_InputTypeCtrl.GetCurSel();
memcpy(m_ATMInfo.sATMIP,m_sATMIP,16);
m_ATMInfo.dwATMType = m_ATMTypeCtrl.GetCurSel();
if(m_ATMInfo.dwInputMode == 0)
{
m_ATMInfo.dwFrameSignBeginPos = m_dwMessageStart;
m_ATMInfo.dwFrameSignLength = m_dwMessageLen;
memcpy(m_ATMInfo.byFrameSignContent,m_sMessageInfo,12);
m_ATMInfo.dwCardLengthInfoBeginPos = m_dwCardLenInfoStart;
m_ATMInfo.dwCardLengthInfoLength = m_dwCardLenInfoLen;
m_ATMInfo.dwCardNumberInfoBeginPos = m_dwCardNumInfoStart;
m_ATMInfo.dwCardNumberInfoLength = m_dwCardNumInfoLen;
m_ATMInfo.dwBusinessTypeBeginPos = m_dwBusinessStart;
m_ATMInfo.dwBusinessTypeLength = m_dwBusinessLen;
memcpy(m_ATMInfo.frameTypeCode[m_nTypeSel].code,m_csBusinessCode,12);
}
else
{
memcpy(m_ATMInfo.frameTypeCode[m_nTypeSel].code,m_csBusinessCode5,12);
}
m_bSetPara = TRUE;
}
void CRemoteATMInfo::OnExit()
{
// TODO: Add your control notification handler code here
m_bSetPara = FALSE;
}
void CRemoteATMInfo::OnCancel()
{
// TODO: Add extra cleanup here
//CDialog::OnCancel();
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?