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

📄 rfid_desktopreaderview.cpp

📁 RFID读卡器源码,vc.net编写,bcgp界面控件
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// RFID_DesktopReaderView.cpp : implementation of the CRFID_DesktopReaderView class
//

#include "stdafx.h"
#include "RFID_DesktopReader.h"

#include "RFID_DesktopReaderDoc.h"
#include "RFID_DesktopReaderView.h"

#include "CommDlg.h"
#include "exportFUNC.h"
#include "rfidSearchDlg.h"
#include "rfid_desktopreaderview.h"
#include "dbtable.h"
#include "rfid_desktopreaderview.h"

#include "adoDB.h"
#include ".\rfid_desktopreaderview.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CRFID_DesktopReaderView

IMPLEMENT_DYNCREATE(CRFID_DesktopReaderView, CFormView)

BEGIN_MESSAGE_MAP(CRFID_DesktopReaderView, CFormView)
	//{{AFX_MSG_MAP(CRFID_DesktopReaderView)
//	ON_COMMAND(ID_VIEW_PREVIEW_PANE, OnViewPreviewPane)
//	ON_UPDATE_COMMAND_UI(ID_VIEW_PREVIEW_PANE, OnUpdateViewPreviewPane)
	ON_WM_CREATE()
	//}}AFX_MSG_MAP
	ON_WM_CONTEXTMENU()
	// Standard printing commands
	ON_COMMAND(ID_FILE_PRINT, CFormView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_DIRECT, CFormView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_PREVIEW, OnFilePrintPreview)
	ON_COMMAND(ID_DB_CONNECT, OnDbConnect)
	ON_COMMAND(ID_DB_DISCONNECT, OnDbDisconnect)
	ON_COMMAND(ID_DB_SETTING, OnDbSetting)
	ON_COMMAND(ID_COMM_CONNECT, OnCommConnect)
	ON_COMMAND(ID_COMM_DISCONNECT, OnCommDisconnect)
	ON_COMMAND(ID_COMM_SETTING, OnCommSetting)
//	ON_COMMAND(ID_RFID_SEARCH, OnRfidSearch)
	ON_COMMAND(ID_RFID_ASSOCIATE, OnRfidAssociate)
	ON_COMMAND(ID_RFID_DEASSOCIATE, OnRfidDeassociate)
	ON_MESSAGE(WM_MAPEDRFID,OnMapedRFID)
	ON_COMMAND(ID_RFID_CANCLE, OnRfidCancle)
	ON_CBN_SELCHANGE(IDC_COB_FIELD0, OnCbnSelchangeCobField0)
	ON_CBN_SELCHANGE(IDC_COB_FIELD1, OnCbnSelchangeCobField1)
	ON_CBN_SELCHANGE(IDC_COB_FIELD2, OnCbnSelchangeCobField2)
	ON_CBN_SELCHANGE(IDC_COB_FIELD3, OnCbnSelchangeCobField3)
	ON_BN_CLICKED(IDC_RESET_ALL, OnBnClickedResetAll)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CRFID_DesktopReaderView construction/destruction
_ConnectionPtr	g_pConnection;
_CommandPtr		g_pCommand;
_RecordsetPtr	g_pRecordset;

//CADODataset g_adoDataset;
//CADOConnection g_adoConnection;


CRFID_DesktopReaderView::CRFID_DesktopReaderView()
	: CFormView(CRFID_DesktopReaderView::IDD)
{
	// TODO: add construction code here
	m_nBand=19200;
	m_nPort=1;
	m_nParity=0;//odd parity
	m_nData=8;
	m_nLamp=0;

	m_pCommDlg=NULL;
//	g_padoConnection=NULL;


//	m_strStopBit="1";

}

CRFID_DesktopReaderView::~CRFID_DesktopReaderView()
{
	if(m_pCommDlg!=NULL)
		delete m_pCommDlg;
}

BOOL CRFID_DesktopReaderView::PreCreateWindow(CREATESTRUCT& cs)
{
	cs.style |= LVS_REPORT;
	return CFormView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CRFID_DesktopReaderView drawing

void CRFID_DesktopReaderView::OnDraw(CDC* pDC)
{
	CRFID_DesktopReaderDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
/*
    CRect rect;
    CRect rect1;
	int height,width;
	this->GetClientRect(&rect);
	rect.top+=120;
	rect.bottom-=5; 
    CListCtrl* list=(CListCtrl*)this->GetDlgItem(IDC_LIST2);
  	list->MoveWindow(&rect);

*/

	// TODO: add draw code for native data here
}

void CRFID_DesktopReaderView::OnInitialUpdate()
{
	CFormView::OnInitialUpdate();

//	m_cDBList.SetExtendedStyle( LVS_EX_FULLROWSELECT| LVS_EX_GRIDLINES );
	m_cListAssociation.SetExtendedStyle( LVS_EX_FULLROWSELECT| LVS_EX_GRIDLINES );
	m_cListUnassociation.SetExtendedStyle( LVS_EX_FULLROWSELECT| LVS_EX_GRIDLINES );
	//FillList();




}

/////////////////////////////////////////////////////////////////////////////
// CRFID_DesktopReaderView printing

void CRFID_DesktopReaderView::OnFilePrintPreview() 
{
	BCGPPrintPreview (this);
}

BOOL CRFID_DesktopReaderView::OnPreparePrinting(CPrintInfo* pInfo)
{
	// default preparation
	return DoPreparePrinting(pInfo);
}

void CRFID_DesktopReaderView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add extra initialization before printing
}

void CRFID_DesktopReaderView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add cleanup after printing
}

/////////////////////////////////////////////////////////////////////////////
// CRFID_DesktopReaderView diagnostics

#ifdef _DEBUG
void CRFID_DesktopReaderView::AssertValid() const
{
	CFormView::AssertValid();
}

void CRFID_DesktopReaderView::Dump(CDumpContext& dc) const
{
	CFormView::Dump(dc);
}

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

/////////////////////////////////////////////////////////////////////////////
// CRFID_DesktopReaderView message handlers

void CRFID_DesktopReaderView::OnContextMenu(CWnd*, CPoint point)
{
	theApp.ShowPopupMenu (IDR_CONTEXT_MENU, point, this);
}

//void CRFID_DesktopReaderView::OnViewPreviewPane() 
//{
//	// TODO: Add your command handler code here
//	
//}

//void CRFID_DesktopReaderView::OnUpdateViewPreviewPane(CCmdUI* pCmdUI) 
//{
//	// TODO: Add your command update UI handler code here
//	
//}

int CRFID_DesktopReaderView::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CFormView::OnCreate(lpCreateStruct) == -1)
		return -1;
	
	const int nImageWidth = 12;

	m_ImagesHeader.Create (IDB_HEADER_IMAGES, nImageWidth, 0, RGB (255, 0, 255));
//	m_ImagesList.Create (IDB_LIST_IMAGES, 14, 0, RGB (255, 0, 255));
/*
	CListCtrl& wndList = GetListCtrl ();
	wndList.SetExtendedStyle (LVS_EX_FULLROWSELECT);

	wndList.SetImageList (&m_ImagesList, LVSIL_SMALL);

	wndList.InsertColumn (0, _T("From"), LVCFMT_LEFT, 100);
	wndList.InsertColumn (1, _T("Subject"), LVCFMT_LEFT, 200);
*/

	m_wndHeader.SubclassDlgItem (0, this);
//	m_wndHeader.SetImageList (&m_ImagesHeader);
/*
	LVCOLUMN lvColumn;
	memset (&lvColumn, 0, sizeof (LVCOLUMN));
	lvColumn.mask = LVCF_IMAGE | LVCF_WIDTH;
	lvColumn.fmt = LVCFMT_COL_HAS_IMAGES;
	lvColumn.cx = nImageWidth * 2;

	lvColumn.iImage = 0;
	wndList.InsertColumn (2, &lvColumn);

	lvColumn.iImage = 1;
	wndList.InsertColumn (3, &lvColumn);

	lvColumn.iImage = 2;
	wndList.InsertColumn (4, &lvColumn);

	static int nColumsOrder [] = { 2, 3, 4, 0, 1 };
	wndList.SetColumnOrderArray (sizeof (nColumsOrder) / sizeof (int), nColumsOrder);
*/

	return 0;
}

void CRFID_DesktopReaderView::OnDbConnect()
{
	// TODO: 在此添加命令处理程序代码

	CRFID_DesktopReaderApp* ptheApp=(CRFID_DesktopReaderApp*)AfxGetApp();
	ptheApp->CreateDBConnection("MyDbSource.udl");
	CRFID_DesktopReaderDoc* pDoc=GetDocument();

	ASSERT_VALID(pDoc);
	if(ptheApp->m_adoConnection.IsOpen())
	{
		pDoc->m_adoDevice.SetConnection(&(ptheApp->m_adoConnection));
		pDoc->m_adoRFIDMap.SetConnection(&(ptheApp->m_adoConnection));
		pDoc->m_adoUnmapedDevice.SetConnection(&(ptheApp->m_adoConnection));
		pDoc->m_adoMapedDevice.SetConnection(&(ptheApp->m_adoConnection));
		pDoc->m_CurrentRFID.mapedDataset.SetConnection(&(ptheApp->m_adoConnection));

		this->FillCOB();
		this->FillAssociationList();
		this->FillUnassociationList();

	}

}

void CRFID_DesktopReaderView::OnDbDisconnect()
{
	// TODO: 在此添加命令处理程序代码
}

void CRFID_DesktopReaderView::OnDbSetting()
{
	// TODO: 在此添加命令处理程序代码
		// TODO: Add your control notification handler code here
	 HRESULT hr;
     IDataSourceLocatorPtr dlPrompt=NULL;
     _RecordsetPtr rs=NULL;
     try
     {
		// 初始化DataLinks对象
		hr=dlPrompt.CreateInstance(__uuidof(DataLinks));
		if(FAILED(hr))
			throw(_com_error(hr,NULL));

		// 建立连接
		pConn=dlPrompt->PromptNew();

		


		// 如果 conn 为 NULL
		if(pConn==NULL)
			return;

		CRFID_DesktopReaderDoc* pDoc=GetDocument();

		pDoc->m_strDataSource=(char*)pConn->ConnectionString;
		UpdateData(FALSE);

		/*
		// 打开连接
		pConn->Open(pConn->ConnectionString,L"",L"",-1); 

		// 清除列表框
		while(m_tblList.GetCount()>0)
			m_tblList.DeleteString(0);

		// 获取数据库中表集
		rs=pConn->OpenSchema(adSchemaTables);
		while(!rs->adoEOF)
		{
			m_tblList.AddString((char*)(_bstr_t)rs->Fields->Item[L"TABLE_NAME"]->Value);
			rs->MoveNext();
		}
		*/

		rs=NULL;
		dlPrompt.Release();
		

	}
	catch (_com_error &e)
	{
		AfxMessageBox(e.ErrorMessage());
	}

}

//void CRFID_DesktopReaderView::OnRfidAssociate()
//{
//	// TODO: 在此添加命令处理程序代码
//
//}

//void CRFID_DesktopReaderView::OnRfidDeassociate()
//{
//	// TODO: 在此添加命令处理程序代码
//}

void CRFID_DesktopReaderView::OnCommConnect()
{
	// TODO: 在此添加命令处理程序代码
			//打开串行端口
	int state = 1;	
	//port : com1
    //baud : 19200
    state = rf_init_com(1,m_nBand);

	if(state != LIB_SUCCESS){
		rf_ClosePort();			
//		MessageBox("不能正确打开端口!","Error",MB_OK|MB_ICONERROR);
		return ;
	}

}

void CRFID_DesktopReaderView::OnCommDisconnect()
{
	// TODO: 在此添加命令处理程序代码
}

void CRFID_DesktopReaderView::OnCommSetting()
{
	// TODO: 在此添加命令处理程序代码
	if(m_pCommDlg==NULL)
	{
		m_pCommDlg=new CCommDlg(this,
			m_nBand,
			m_nPort,
			m_nLamp);

		m_pCommDlg->Create(IDD_COM_DLG,this);


	}

	ASSERT_VALID(m_pCommDlg);

	m_pCommDlg->ShowWindow(SW_SHOW);
	m_pCommDlg->UpdateData(TRUE);
	/*
	commDlg.m_nBand=m_nBand;
	commDlg.m_nPort=m_nPort-1;

	if(commDlg.DoModal()==IDOK)
	{
		m_nPort=commDlg.m_nPort+1;
		m_nBand=commDlg.m_nBand;
		m_nLamp=commDlg.m_nLamp;

	}
	*/


}

//void CRFID_DesktopReaderView::OnRfidSearch()
//{
//	// TODO: 在此添加命令处理程序代码
//
//
//}

⌨️ 快捷键说明

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