📄 mifareview.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 + -