📄 punishpeccancy_ppage.cpp
字号:
// PunishPeccancy_PPage.cpp : implementation file
//
#include "stdafx.h"
#include "TrafficExecLaw.h"
#include "PunishPeccancy_PPage.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CPunishPeccancy_PPage property page
IMPLEMENT_DYNCREATE(CPunishPeccancy_PPage, CPropertyPage)
CPunishPeccancy_PPage::CPunishPeccancy_PPage() : CPropertyPage(CPunishPeccancy_PPage::IDD)
{
//{{AFX_DATA_INIT(CPunishPeccancy_PPage)
m_deducting_points = 2;
m_exec_branch = _T("");
m_exec_man = _T("");
m_pecc_car = _T("");
m_pecc_desc = _T("");
m_pecc_man = _T("");
m_pecc_region = _T("");
m_cer_mumber = _T("");
//}}AFX_DATA_INIT
}
CPunishPeccancy_PPage::~CPunishPeccancy_PPage()
{
}
void CPunishPeccancy_PPage::DoDataExchange(CDataExchange* pDX)
{
CPropertyPage::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CPunishPeccancy_PPage)
DDX_Text(pDX, IDC_EDIT_deducting_points, m_deducting_points);
DDV_MinMaxInt(pDX, m_deducting_points, 1, 12);
DDX_Text(pDX, IDC_EDIT_exec_branch, m_exec_branch);
DDV_MaxChars(pDX, m_exec_branch, 32);
DDX_Text(pDX, IDC_EDIT_exec_man, m_exec_man);
DDV_MaxChars(pDX, m_exec_man, 16);
DDX_Text(pDX, IDC_EDIT_pecc_car, m_pecc_car);
DDV_MaxChars(pDX, m_pecc_car, 10);
DDX_Text(pDX, IDC_EDIT_pecc_desc, m_pecc_desc);
DDV_MaxChars(pDX, m_pecc_desc, 128);
DDX_Text(pDX, IDC_EDIT_pecc_man, m_pecc_man);
DDV_MaxChars(pDX, m_pecc_man, 16);
DDX_Text(pDX, IDC_EDIT_pecc_region, m_pecc_region);
DDV_MaxChars(pDX, m_pecc_region, 64);
DDX_Text(pDX, IDC_EDIT_CERTI_NUMBER, m_cer_mumber);
DDV_MaxChars(pDX, m_cer_mumber, 19);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CPunishPeccancy_PPage, CPropertyPage)
//{{AFX_MSG_MAP(CPunishPeccancy_PPage)
ON_BN_CLICKED(IDC_BUTTON_upload, OnBUTTONupload)
ON_BN_CLICKED(IDC_BUTTON_print, OnBUTTONprint)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CPunishPeccancy_PPage message handlers
extern CTrafficExecLawApp theApp;
#include "ExecLawSheet_Dlg.h"
void CPunishPeccancy_PPage::OnBUTTONupload()
{
// TODO: Add your control notification handler code here
if(!this->UpdateData ())
return ;
short srvCode=PUNISH;
Punish_Info pi;
TCHAR msg[3];
pi.m_deducting_points = m_deducting_points;
wcscpy(pi.m_exec_branch,m_exec_branch);
wcscpy(pi.m_exec_man,m_exec_man);
wcscpy(pi.m_pecc_car,m_pecc_car);
wcscpy(pi.m_pecc_desc,m_pecc_desc);
wcscpy(pi.m_pecc_man,m_pecc_man);
wcscpy(pi.m_pecc_region,m_pecc_region);
wcscpy(pi.m_cer_mumber,m_cer_mumber);
CSocket s;
int v;
v=s.Create(4001,SOCK_STREAM);
if(v==0)goto error;
v=s.Connect (theApp.databaseSrvIP,8888);
if(v==0)goto error;
v=s.Send(&srvCode,sizeof(srvCode),8888);
if(v!=sizeof(srvCode))
goto error;
v=s.Send(&pi,sizeof(pi),8888);
if(v!=sizeof(pi))
goto error;
v=s.Receive(msg,sizeof(msg));
if(wcscmp(msg,L"OK")==0)
{
MessageBox(L"执行成功。");
short currPoints;
short deductedPoints;
ReadICC(32+(int)&((Drive_Certi_Info*)0)->m_curr_points,&currPoints,sizeof(short));
ReadICC(32+(int)&((Drive_Certi_Info*)0)->m_deducted_points,&deductedPoints,sizeof(short));
WriteICC(32+(int)&((Drive_Certi_Info*)0)->m_curr_points,&currPoints,sizeof(short));
WriteICC(32+(int)&((Drive_Certi_Info*)0)->m_deducted_points,&deductedPoints,sizeof(short));
((CExecLawSheet_Dlg*)this->GetParent ())->GetPage (0)->
SendMessage (WM_COMMAND,IDC_BUTTON_QUERY,0);
}
else
{
MessageBox(L"执行失败。");
}
error:
if(v==0)
{
MessageBox(L"网络错误!");
}
s.ShutDown ();
s.Close ();
}
void CPunishPeccancy_PPage::OnBUTTONprint()
{
HANDLE hCom;
DWORD len;
hCom =::CreateFile (L"COM7:",
GENERIC_READ|GENERIC_WRITE,
0,NULL,OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL|FILE_FLAG_WRITE_THROUGH,
NULL);
if(hCom==INVALID_HANDLE_VALUE)
return;
DCB dcb;
dcb.DCBlength =sizeof(DCB);
::GetCommState (hCom,&dcb);
dcb.BaudRate =CBR_9600;
dcb.StopBits =ONESTOPBIT;
dcb.ByteSize =8;
::SetCommState (hCom,&dcb);
Drive_Certi_Info dci;
char str[512];
if(::ReadICC (32,&dci,sizeof(dci))==0)
{
MessageBox(L"读取IC卡错误。");
return;
}
::WriteFile(hCom, "\n", strlen("\n"), &len, NULL);
Sleep(400);
::WriteFile(hCom, "姓名:", strlen("姓名:"), &len, NULL);
memset(str, 0, sizeof(str));
::WideCharToMultiByte(CP_ACP, WC_COMPOSITECHECK, dci.m_name, -1, str, sizeof(str), NULL, NULL);
strcat(str, "\n");
::WriteFile(hCom, str, strlen(str), &len, NULL);
Sleep(400);
::WriteFile(hCom, "驾驶证号:", strlen("驾驶证号:"), &len, NULL);
memset(str, 0, sizeof(str));
::WideCharToMultiByte(CP_ACP, WC_COMPOSITECHECK, dci.m_cer_mumber, -1, str, sizeof(str), NULL, NULL);
strcat(str, "\n");
::WriteFile(hCom, str, strlen(str), &len, NULL);
Sleep(400);
::WriteFile(hCom, "剩余分数:", strlen("剩余分数:"), &len, NULL);
sprintf(str, "%d\n", dci.m_curr_points);
::WriteFile(hCom, str, strlen(str), &len, NULL);
Sleep(400);
::WriteFile(hCom, "已经扣除分数:", strlen("已经扣除分数:"), &len, NULL);
sprintf(str, "%d\n", dci.m_deducted_points);
::WriteFile(hCom, str, strlen(str), &len, NULL);
Sleep(100);
::WriteFile(hCom, " \r", 17, &len, NULL);
Sleep(400);
::CloseHandle(hCom);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -