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

📄 mifareview.cpp

📁 Mifare非接触IC读卡器与PC通信程序
💻 CPP
字号:
// MifareView.cpp : implementation of the CMifareView class
//

#include "stdafx.h"
#include "Mifare.h"

#include "MifareDoc.h"
#include "MifareView.h"
#include "zlg500.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CMifareView

IMPLEMENT_DYNCREATE(CMifareView, CEditView)

BEGIN_MESSAGE_MAP(CMifareView, CEditView)
	//{{AFX_MSG_MAP(CMifareView)
	ON_COMMAND(ID_COM_SETUP, OnComSetup)
	ON_COMMAND(ID_COM_OPEN, OnComOpen)
	ON_WM_CREATE()
	ON_COMMAND(ID_TAG_BLOCK, OnTagBlock)
	ON_COMMAND(ID_COM_CLOSE, OnComClose)
	ON_COMMAND(ID_TAG_VALUE, OnTagValue)
	//}}AFX_MSG_MAP
	// Standard printing commands
	ON_COMMAND(ID_FILE_PRINT, CEditView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_DIRECT, CEditView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_PREVIEW, CEditView::OnFilePrintPreview)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CMifareView construction/destruction

CMifareView::CMifareView()
{
	// TODO: add construction code here
    comnum = 1;
	BaudRate = 19200;
}

CMifareView::~CMifareView()
{
}

BOOL CMifareView::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs

	BOOL bPreCreated = CEditView::PreCreateWindow(cs);
	cs.style &= ~(ES_AUTOHSCROLL|WS_HSCROLL);	// Enable word-wrapping

	return bPreCreated;
}

/////////////////////////////////////////////////////////////////////////////
// CMifareView drawing

void CMifareView::OnDraw(CDC* pDC)
{
	CMifareDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	// TODO: add draw code for native data here
}

/////////////////////////////////////////////////////////////////////////////
// CMifareView printing

BOOL CMifareView::OnPreparePrinting(CPrintInfo* pInfo)
{
	// default CEditView preparation
	return CEditView::OnPreparePrinting(pInfo);
}

void CMifareView::OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo)
{
	// Default CEditView begin printing.
	CEditView::OnBeginPrinting(pDC, pInfo);
}

void CMifareView::OnEndPrinting(CDC* pDC, CPrintInfo* pInfo)
{
	// Default CEditView end printing
	CEditView::OnEndPrinting(pDC, pInfo);
}

/////////////////////////////////////////////////////////////////////////////
// CMifareView diagnostics

#ifdef _DEBUG
void CMifareView::AssertValid() const
{
	CEditView::AssertValid();
}

void CMifareView::Dump(CDumpContext& dc) const
{
	CEditView::Dump(dc);
}

CMifareDoc* CMifareView::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CMifareDoc)));
	return (CMifareDoc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CMifareView message handlers

void CMifareView::OnComSetup() 
{
	// TODO: Add your command handler code here	
    CString strStatus;
    strStatus = "当前串口状态为:  ";

	CString strDis;
	CEdit& myEdit=this->GetEditCtrl();
	myEdit.SetSel(1000000,1000000);

	strDis+="请按提示设置串口!\15\12\15\12";
	
	myEdit.ReplaceSel(strDis);

	if(mySetupDlg.DoModal()==IDOK)
	{
		strStatus += "串口  ";
		switch (mySetupDlg.m_com)
		{
		case 0:
			{
				strStatus +="COM1";
				strStatus+="  ";
				comnum = 1;
				break;
			}
		case 1:
			{
				strStatus+="COM2";
				strStatus+="  ";
				comnum = 2;
				break;
			}

		case 2:
			{
				strStatus+="COM3";
				strStatus+="  ";
				comnum = 3;
				break;
			}

		case 3:
			{
				strStatus+="COM4";
				strStatus+="  ";
				comnum = 4;
				break;
			}
		}
		
		strStatus+=" 波特率 ";
		switch(mySetupDlg.m_Baudrate)
		{
        
		case 0:
			{
				strStatus+="9600";
				strStatus+="  ";
				BaudRate=9600;
				break;
			}
		case 1:
			{
				strStatus+="19200";
				strStatus+="  ";
				BaudRate = 19200;
				break;
			}
		case 2:
			{
				strStatus+="4800";
				strStatus+="  ";
				BaudRate=CBR_4800;
				break;
			}
		case 3:
			{
				strStatus+="28800";
				strStatus+="  ";
				BaudRate = 28800;
				break;
			}
		}

		CString strDis;
		CEdit& myEdit=this->GetEditCtrl();
		myEdit.SetSel(1000000,1000000);
		strDis+="串口已成功设置!\15\12\15\12";
		myEdit.ReplaceSel(strDis);

		CMainFrame* m_pGetFrame=(CMainFrame*) AfxGetApp()->m_pMainWnd ;
		CStatusBar* m_pStatus=&m_pGetFrame->m_wndStatusBar;
		m_pStatus->SetPaneText(1,strStatus);            //将通信参数显示在状态条上	
	}
}

void CMifareView::OnComOpen() 
{
	// TODO: Add your command handler code here
	if(zlg500_init(comnum, BaudRate))
	{
		AfxMessageBox("打开串口失败!");
	}

	CString strDis,str;
	CEdit& myEdit=this->GetEditCtrl();
	myEdit.SetSel(1000000,1000000);
//	strDis=myCom;
	str.Format("当前串口状态:串口%d,波特率%d",comnum,BaudRate);
	strDis+="串口打开成功!\15\12\15\12";
	strDis+=str;
	strDis+="\15\12\15\12";
	myEdit.ReplaceSel(strDis);
}

int CMifareView::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CEditView::OnCreate(lpCreateStruct) == -1)
		return -1;
	
    CEdit& myEdit=this->GetEditCtrl( );
	myEdit.SetReadOnly (true);          //将显示区域设为只读
	//hWnd=GetSafeHwnd();                 //获取当前窗口的句柄
	//blnOpened=false;
	
	return 0;
}

void CMifareView::OnTagBlock() 
{
	// TODO: Add your command handler code here
	CString strDis;
	CEdit& myEdit=this->GetEditCtrl();
	myEdit.SetSel(1000000,1000000);
	strDis+="当前执行的是块操作,请按提示进行需要的操作!\15\12\15\12";	
	myEdit.ReplaceSel(strDis);

	Sleep(1000);

	BlockDlg.DoModal();	
}

void CMifareView::OnComClose() 
{
	// TODO: Add your command handler code here
	zlg500_exit();

	CString strDis;
	CEdit& myEdit=this->GetEditCtrl();
	myEdit.SetSel(1000000,1000000);
//	strDis=myCom;
	strDis+="串口已关闭!\15\12\15\12";

	myEdit.ReplaceSel(strDis);
}

void CMifareView::OnTagValue() 
{
	// TODO: Add your command handler code here
    CString strDis;
	CEdit& myEdit=this->GetEditCtrl();
	myEdit.SetSel(1000000,1000000);
	strDis+="当前执行的是值操作,,请按提示进行需要的操作!\15\12\15\12";	
	myEdit.ReplaceSel(strDis);

	Sleep(1000);
	
	ValueDlg.DoModal();
}


⌨️ 快捷键说明

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