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 
	 
}