www.pudn.com > RMS2000_C.rar > ChaView.cpp
// ChaView.cpp : implementation file
//
#include "stdafx.h"
#include "DrawCli.h"
#include "ChaDoc.h"
#include "ChaView.h"
#include "mainfrm.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CChaView
IMPLEMENT_DYNCREATE(CChaView, CListView)
CChaView::CChaView()
{
// m_cPrintListCtrl=&GetListCtrl();
}
CChaView::~CChaView()
{
}
BEGIN_MESSAGE_MAP(CChaView, CListView)
//{{AFX_MSG_MAP(CChaView)
ON_WM_DESTROY()
ON_WM_CHAR()
ON_COMMAND(ID_WINDOW_NEW, OnWindowNew)
ON_COMMAND(ID_FILE_SAVE, OnFileSave)
ON_COMMAND(ID_FILE_SAVE_AS, OnFileSaveAs)
//}}AFX_MSG_MAP
ON_MESSAGE(WM_RTU_DATA,OnRtuData)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CChaView drawing
void CChaView::OnDraw(CDC* pDC)
{
CDocument* pDoc = GetDocument();
// TODO: add draw code here
}
/////////////////////////////////////////////////////////////////////////////
// CChaView diagnostics
#ifdef _DEBUG
void CChaView::AssertValid() const
{
CListView::AssertValid();
}
void CChaView::Dump(CDumpContext& dc) const
{
CListView::Dump(dc);
}
CChaDoc* CChaView::GetDocument()
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CChaDoc)));
return (CChaDoc*)m_pDocument;
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CChaView message handlers
void CChaView::OnInitialUpdate()
{
CListView::OnInitialUpdate();
m_pImageList = new CImageList();
m_pImageList->Create(IDB_IMAGELIST, 16, 1, RGB(0,0,0));
GetListCtrl().SetImageList(m_pImageList, LVSIL_SMALL); /* set extended stlyes*/
DWORD dwExStyle = LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | /*LVS_EX_SUBITEMIMAGES |*/
LVS_EX_HEADERDRAGDROP | LVS_EX_TRACKSELECT;
GetListCtrl().SendMessage(LVM_SETEXTENDEDLISTVIEWSTYLE, 0, LPARAM(dwExStyle));
int cols=5;
LV_COLUMN lvColumn;
lvColumn.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
lvColumn.fmt = LVCFMT_LEFT;
lvColumn.cx = 80;
for(int i = 0; i < cols; i++) // set up columns
{
char temp[20] ;
if (i==0) strcpy(temp,"序号");
if (i==1) strcpy(temp, "RTU号");
if (i==2) strcpy(temp, "厂站名");
if (i==3) strcpy(temp, "通信状态");
if (i==4) strcpy(temp, "正点存数");
int len = strlen(temp);
lvColumn.iSubItem = i;
lvColumn.pszText = temp;
GetListCtrl().InsertColumn(i, &lvColumn);//insert column
}
long count = MaxInstRtu;
LV_ITEM lvi;
for(i = 0; i < count; i++)
{
lvi.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_STATE;
lvi.iItem = i;
lvi.iSubItem = 0;
char temp[20] ;
sprintf(temp,"%d",i+1);
lvi.pszText = temp;
lvi.iImage = 0; //i;
lvi.stateMask = LVIS_STATEIMAGEMASK;
lvi.state = INDEXTOSTATEIMAGEMASK(1);
GetListCtrl().InsertItem(&lvi);
}
for(i = 0; i < count; i++)
ShowData(i+1,1);
CDrawApp* pApp=(CDrawApp*)AfxGetApp();
for (i=0;im_QJCS.InstallSta;i++)
{
if (pApp->m_QJCS.StaToRtu[i]<=count)
ShowData(pApp->m_QJCS.StaToRtu[i],0);
}
}
void CChaView::OnDestroy()
{
CListView::OnDestroy();
CMainFrame* pMW=(CMainFrame*)AfxGetApp()->m_pMainWnd;
for (int itemp=0; itempm_ViewHwnd.GetSize(); itemp++)
if (pMW->m_ViewHwnd.GetAt(itemp)==(* this).m_hWnd)
{
pMW->m_ViewHwnd.RemoveAt(itemp);
break;
}
if (m_pImageList)
delete m_pImageList;
}
BOOL CChaView::PreCreateWindow(CREATESTRUCT& cs)
{
cs.lpszName = WC_LISTVIEW;
/*
cs.style &= ~LVS_TYPEMASK;
cs.style |= LVS_REPORT;
cs.style |= LVS_OWNERDATA;
cs.style |= LVS_EDITLABELS;
cs.style |= LVS_SHOWSELALWAYS;
*/
cs.style |= LVS_SHOWSELALWAYS | LVS_REPORT;
return CListView::PreCreateWindow(cs);
}
BOOL CChaView::ShowData(int rtu,int flag)
{
CDrawApp* pApp=(CDrawApp*)AfxGetApp();
CMainFrame* pMW=(CMainFrame*)AfxGetApp()->m_pMainWnd;
int cols=5;
long count = MaxInstRtu;
TCHAR szValue[MAX_PATH];
szValue[0] = '\0';
for(int j = 1; j=rtu)
{
sprintf (szValue,"%d#RTU",rtu);
}
else strcpy(szValue, "");
}
if (j==2)
{
if (MaxInstRtu>=rtu)
{
strcpy(szValue,Stations[rtu-1]->RtuName);
}
else strcpy(szValue, "");
}
if (j==3)
{
if (MaxInstRtu>=rtu)
{
if (flag==1)
sprintf(szValue,"%s","NO");
else
{
if (pMW->CommStatus[rtu-1]==1)
sprintf(szValue,"%s"," OK");
else
sprintf(szValue,"%s"," ERR");
}
}
else strcpy(szValue, "");
}
if (j==4)
{
if (MaxInstRtu>=rtu)
{
if (pMW->StoreDataStatus[rtu-1]==1)
sprintf(szValue,"%s"," YES");
else
sprintf(szValue,"%s","NO");
}
else strcpy(szValue, "");
}
GetListCtrl().SetItemText(rtu-1,j,szValue);
}
return TRUE;
}
BOOL CChaView::Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext)
{
if (CWnd::Create(lpszClassName, lpszWindowName, dwStyle, rect, pParentWnd, nID, pContext)==0)
return FALSE;
CMainFrame* pMW=(CMainFrame*)AfxGetApp()->m_pMainWnd;
pMW->m_ViewHwnd.Add((* this).m_hWnd);
return TRUE;
}
LRESULT CChaView::OnRtuData(WPARAM wParam,LPARAM lParam)
{
CDrawApp* pApp=(CDrawApp*)AfxGetApp();
for (int i=0;im_QJCS.InstallSta;i++)
{
if (pApp->m_QJCS.StaToRtu[i]==(int)wParam)
ShowData((int)wParam,0);
}
return (LRESULT)0;
}
void CChaView::OnPrint(CDC* pDC, CPrintInfo* pInfo)
{
CListView::OnPrint(pDC, pInfo);
// m_cPrintListCtrl.OnPrint(pDC, pInfo);
}
void CChaView::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
if ((nChar == 113)||(nChar == 81))
{
CMainFrame* pFrame = (CMainFrame*) AfxGetMainWnd();
pFrame->EscapeFullScreen();
}
CListView::OnChar(nChar, nRepCnt, nFlags);
}
void CChaView::OnWindowNew()
{
// TODO: Add your command handler code here
}
void CChaView::OnFileSave()
{
// TODO: Add your command handler code here
}
void CChaView::OnFileSaveAs()
{
// TODO: Add your command handler code here
}