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

📄 transferdlg.cpp

📁 一个与金融方面有关的问题
💻 CPP
字号:
/*******************************************************
转帐模块
作者:颜永华
********************************************************/
// TransferDlg.cpp : 实现文件
//

#include "stdafx.h"
#include "BankClient.h"
#include "TransferDlg.h"
#include ".\transferdlg.h"
#include "MD5.h"
#include "sock.h"

extern CSock sock;
extern int connFlag;


// CTransferDlg 对话框

IMPLEMENT_DYNAMIC(CTransferDlg, CDialog)
CTransferDlg::CTransferDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CTransferDlg::IDD, pParent)
{
}

CTransferDlg::~CTransferDlg()
{
}

void CTransferDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	DDX_Control(pDX, IDC_EDIT1, m_EditAccId);
	DDX_Control(pDX, IDC_EDIT2, m_EditPwd);
	DDX_Control(pDX, IDC_EDIT4, m_EditInAcc);
	DDX_Control(pDX, IDC_EDIT3, m_EditMoney);
}


BEGIN_MESSAGE_MAP(CTransferDlg, CDialog)
	ON_BN_CLICKED(IDOK, OnBnClickedOk)
END_MESSAGE_MAP()


// CTransferDlg 消息处理程序

void CTransferDlg::OnBnClickedOk()
{
	//转帐
	int errnum=0;
	int len=m_EditAccId.GetWindowTextLength();
	CString str;
	if(!len||len!=18)
		str.Format("%d:转出账号必须是18位\n",++errnum);
	len=this->m_EditInAcc.GetWindowTextLength();
	if(!len||len!=18)
		str.Format("%s%d:存入账号必须是18位\n",str,++errnum);
	len=this->m_EditMoney.GetWindowTextLength();
	if(!len)
		str.Format("%s%d:款项不能为空\n",str,++errnum);
	if(errnum)
		GetDlgItem(IDC_SIGN)->SetWindowText(str);
	else
	{//发送并处理
		GetDlgItem(IDC_SIGN)->SetWindowText("正在处理中请稍候.....");
		
		TRANSFER_MONEY_PACKET transferPacket;
		memset(&transferPacket,0,sizeof(TRANSFER_MONEY_PACKET));
		transferPacket.wCode=CLIENT_TRANSFER;
		transferPacket.wLen=sizeof(TRANSFER_MONEY_PACKET);
		m_EditAccId.GetWindowText(transferPacket.accountId,18);
		m_EditInAcc.GetWindowText(transferPacket.inAccountId,18);
		m_EditMoney.GetWindowText(transferPacket.moneyNum,9);
		m_EditPwd.GetWindowText(transferPacket.accountPwd,16);

		CMD5 md5;
		md5.MD5Update((BYTE*)&transferPacket.accountPwd[0],16);
		md5.MD5Final((BYTE*)&transferPacket.accountPwd[0]);

		if(!connFlag)
		{connFlag=sock.connectServer();connFlag++;}
		if(connFlag)
		{
			if(sock.sendPacket((BYTE*)&transferPacket,sizeof(TRANSFER_MONEY_PACKET)))
			{
				switch(sock.RetFlag())
				{//提示信息流程判断
				case FLAG_SUCCEED:
					{
						//MessageBox("成功");
						GetDlgItem(IDC_SIGN)->SetWindowText("转帐成功!");
					}break;
				case FLAG_YESACC:
					{
						GetDlgItem(IDC_SIGN)->SetWindowText("转入账号不存在!!");
						MessageBox("转入账号不存在!");
					}break;
				case FLAG_ACCPWD_ERR:
					{
						//MessageBox("成功");
						m_EditAccId.SetWindowText("");
						m_EditAccId.SetFocus();
						GetDlgItem(IDC_SIGN)->SetWindowText("验证失败!");
					}break;
				case FLAG_NOBANK:
					{
						//MessageBox("成功");
						GetDlgItem(IDC_SIGN)->SetWindowText("没有银行!");
					}break;
				case FLAG_MONEY_ERR:
					{
						GetDlgItem(IDC_SIGN)->SetWindowText("余额不足!");
						MessageBox("余额不足!");
					}break;
				case FLAG_FAILED:
				default:
					{//MessageBox("成功");
						GetDlgItem(IDC_SIGN)->SetWindowText("转帐失败!");
			
					};
				}
			}
			
		}
	}
	
//	OnOK();
}

BOOL CTransferDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	//限制输入字符长度
	m_EditAccId.SetLimitText(18);
	m_EditPwd.SetLimitText(16);
	m_EditInAcc.SetLimitText(18);
	m_EditMoney.SetLimitText(9);

	return TRUE;  
}

⌨️ 快捷键说明

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