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 + -
显示快捷键?