rectvinfoview.cpp

来自「电压监测后台管理程序,数据是通过GPRS传到因特网的」· C++ 代码 · 共 225 行

CPP
225
字号
// rectvinfoView.cpp : implementation of the CRectvinfoView class
//

#include "stdafx.h"
#include "rectvinfo.h"

#include "rectvinfoDoc.h"
#include "rectvinfoView.h"

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

/////////////////////////////////////////////////////////////////////////////
// CRectvinfoView
CRectvinfoApp* theViewApp;

IMPLEMENT_DYNCREATE(CRectvinfoView, CFormView)

BEGIN_MESSAGE_MAP(CRectvinfoView, CFormView)
	//{{AFX_MSG_MAP(CRectvinfoView)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CRectvinfoView construction/destruction

CRectvinfoView::CRectvinfoView()
	: CFormView(CRectvinfoView::IDD)
{
	//{{AFX_DATA_INIT(CRectvinfoView)
	//}}AFX_DATA_INIT
	// TODO: add construction code here

}

CRectvinfoView::~CRectvinfoView()
{
}

void CRectvinfoView::DoDataExchange(CDataExchange* pDX)
{
	CFormView::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CRectvinfoView)
	DDX_Control(pDX, IDC_LIST_DBSTATUS, m_listDb);
	DDX_Control(pDX, IDC_LIST_WIRELESSERID, m_listId);
	//}}AFX_DATA_MAP
}

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

	return CFormView::PreCreateWindow(cs);
}

void CRectvinfoView::OnInitialUpdate()
{
	CFormView::OnInitialUpdate();
	GetParentFrame()->RecalcLayout();
	ResizeParentToFit();

	theViewApp = (CRectvinfoApp*)AfxGetApp();
	theViewApp->formWnd = m_hWnd;
	ListIdPoint = 0;
	ListDbPoint = 0;
	InitListId();
	InitListDb();
}

/////////////////////////////////////////////////////////////////////////////
// CRectvinfoView diagnostics

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

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

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

/////////////////////////////////////////////////////////////////////////////
// CRectvinfoView message handlers

void CRectvinfoView::InitListId()
{
	CRect	rect;
	
	CString         strItem1= _T("电压监测仪仪器编号");
	CString         strItem2= _T("连接时间(月-日  时:分)");
	
	m_listId.DeleteAllItems();
	
	m_listId.GetWindowRect(&rect);
	m_listId.InsertColumn(0, strItem1, LVCFMT_LEFT,
		rect.Width() * 3/7, 0);
	m_listId.InsertColumn(1, strItem2, LVCFMT_LEFT,
		rect.Width() * 1/2, 1);

	m_listId.SetTextColor(RGB(0,0,0));
}

void CRectvinfoView::AddListId(char* telnum)
{
	LVITEM	T_lvitem;
	CString	T_strTempStr;
	LPTSTR T_pStrTemp = T_strTempStr.GetBuffer(20);
	SYSTEMTIME nowtime;
	char t[10];
	int ActualItem;

	T_lvitem.mask = LVIF_TEXT;
	T_lvitem.iItem = ListIdPoint;
	T_lvitem.iSubItem = 0;
	strcpy(T_pStrTemp,telnum);
	T_lvitem.pszText = T_pStrTemp;
	ActualItem = m_listId.InsertItem(&T_lvitem); // insert new item

	GetLocalTime(&nowtime);
	T_lvitem.iSubItem = 1;
	sprintf(t,"%2d-%02d  %2d:%02d",nowtime.wMonth,nowtime.wDay,nowtime.wHour,nowtime.wMinute);
	strcpy(T_pStrTemp,t);
	T_lvitem.pszText = T_pStrTemp;
	m_listId.SetItem(&T_lvitem);

	ListIdPoint++;

	T_strTempStr.ReleaseBuffer(20);
}

void CRectvinfoView::DeleteListId(char* telnum)
{
	LVFINDINFO mLvFindinfo;
	int index;

	mLvFindinfo.flags = LVFI_STRING;
	mLvFindinfo.psz = LPCTSTR(telnum);
	index = m_listId.FindItem(&mLvFindinfo);
	if (index!=-1)
	{
		m_listId.DeleteItem(index);
		ListIdPoint--;
	}
}

void CRectvinfoView::InitListDb()
{
	CRect	rect;
	
	CString         strItem1= _T(" 历 史 状 态");
	CString         strItem2= _T("时间(月-日  时:分)");
	
	m_listDb.DeleteAllItems();
	
	m_listDb.GetWindowRect(&rect);
	m_listDb.InsertColumn(0, strItem1, LVCFMT_LEFT,
		rect.Width() * 2/5, 0);
	m_listDb.InsertColumn(1, strItem2, LVCFMT_LEFT,
		rect.Width() * 1/2, 1);

	m_listDb.SetTextColor(RGB(0,0,0));
}

void CRectvinfoView::AddListDb(char * telnum)
{
	LVITEM	T_lvitem;
	CString	T_strTempStr;
	LPTSTR T_pStrTemp = T_strTempStr.GetBuffer(22);
	SYSTEMTIME nowtime;
	char t[10];
	int ActualItem;

	T_lvitem.mask = LVIF_TEXT;
	T_lvitem.iItem = ListDbPoint;
	T_lvitem.iSubItem = 0;
	strcpy(T_pStrTemp,telnum);
	T_lvitem.pszText = T_pStrTemp;
	ActualItem = m_listDb.InsertItem(&T_lvitem); // insert new item

	GetLocalTime(&nowtime);
	T_lvitem.iSubItem = 1;
	sprintf(t,"%2d-%02d  %2d:%02d",nowtime.wMonth,nowtime.wDay,nowtime.wHour,nowtime.wMinute);
	strcpy(T_pStrTemp,t);
	T_lvitem.pszText = T_pStrTemp;
	m_listDb.SetItem(&T_lvitem);

	ListDbPoint++;

	T_strTempStr.ReleaseBuffer(22);
}

LRESULT CRectvinfoView::WindowProc(UINT message, WPARAM wParam, LPARAM lParam) 
{
	// TODO: Add your specialized code here and/or call the base class
	switch(message)
	{
	case ADDLISTDB:
		AddListDb((char*)lParam);
		delete (UCHAR*) lParam;
		break;
	case DELETELISTID:
		DeleteListId((char*)lParam);
		delete (UCHAR*) lParam;
		break;
	default:
		break;
	}

	return CFormView::WindowProc(message, wParam, lParam);
}

⌨️ 快捷键说明

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