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

📄 realevview.cpp

📁 电力监控系统 实时告警处理程序
💻 CPP
📖 第 1 页 / 共 3 页
字号:
	COLORREF crText;
	COLORREF crBk = crBackG;
	
	if(!m_bdbInitialed)return;
	/*	m_evtdb.GetSafeDays(m_safedays);
	CString msg;
	msg.Format("%d",m_safedays);
	WPARAM wParm = 0;
	ATOM atom = GlobalAddAtom(msg.GetBuffer(msg.GetLength()));
	msg.ReleaseBuffer();
	::PostMessage(HWND_BROADCAST,nMsgWarn,wParm,(LPARAM)atom);
	*/
	
	if(!Is_evtnew)
	{
		if(!m_bManulUpdate)
			return;
	}
	//更新数据
	m_evtdb.ReadAllEvt();
	//打印新事件
	//if(m_bPrint)m_evtdb.PrintWarn();
	//if(m_bVoice)m_evtdb.VoiceWarn();
	
	m_evtdb.SelectNewEvt();//选择一条新记录,
	
	int nItem = 0, nSubItem= 0;
	Is_evtnew=false;
	int chg=m_evtdb.IsDisRecChanged();
	if(m_evtdb.nEvt <=0)return;
	if(m_updeF==0)
	{
		if(chg==0)
		{
			if(!m_bManulUpdate)
				return;
		}
	}
	m_bLastIsShow = 1;
	crText = m_evtdb.GetWarnColor(m_evtdb.evt_tmp[m_evtdb.cursor].TypeID,m_evtdb.evt_tmp[m_evtdb.cursor].SubtypeID);
	m_bShow=m_evtdb.IsNeedShow(m_evtdb.evt_tmp[m_evtdb.cursor].TypeID,m_evtdb.evt_tmp[m_evtdb.cursor].SubtypeID);//BYTE TypeID, BYTE SubtypeID);
	if(m_bShow)
	{
		if(m_evtdb.evt_tmp[m_evtdb.cursor].TypeID == 12)		
			m_evtdb.GetDTMStr(m_evtdb.evt_tmp[m_evtdb.cursor].Time,m_evtdb.evt_tmp[m_evtdb.cursor].MilliSec,dt);
		else
			m_evtdb.GetDTMStr(m_evtdb.evt_tmp[m_evtdb.cursor].Time,m_evtdb.evt_tmp[m_evtdb.cursor].MilliSec,dt,false);
		sprintf(dt,"%s  %s",dt,m_evtdb.evt_tmp[m_evtdb.cursor].Describe);
//		m_pWndMsg->SetText(dt,crText);
//		//m_pWndMsg->ShowWindow(SW_HIDE);//4.16
	}
	if(!IsWindowVisible())
	ShowWindow(SW_RESTORE);
 	::SendMessage(((CMainFrame*)AfxGetMainWnd())->m_hWnd,WM_COMMAND,ID_WIN_RSHOW,0);

	//ShowWindow(1);
	g_New=1;
	m_updeF=1;
//	CWindowDC  dc(this); // device context for painting	
//   dc.GetClipBox(&rectUpdate);
//	if(rectUpdate.bottom==0) return;
	m_updeF=0;


//	if((m_evtdb.m_iCurEvtDisType!=0xffff)&&(chg!=2)) return;
	m_lsEvent.LockWindowUpdate();	// lock window updates while filling list 
	
	int nEvent = m_evtdb.nEvt;
	if(!m_lsEvent.DeleteAllItems())return;
//	Invalidate();
	DWORD type;	

	if(m_direct == down) //顺序
	{	
		if((WORD)(m_evtdb.m_iCurEvtDisType)!=0xffff)
		{
			for(int i =0;i<m_evtdb.nEvt;i++)
			{
				if(m_evtdb.EvtCmp(&m_evtdb.evt_tmp[i],&m_evtdb.evt0))//2006-7-15
					continue;
				type = MAKEWORD(m_evtdb.evt_tmp[i].SubtypeID,m_evtdb.evt_tmp[i].TypeID);
				if(m_evtdb.evt_tmp[i].TypeID == m_evtdb.m_iCurEvtDisType)
				{
					if(m_bOnlyNew)
					{
						if(m_evtdb.evt_tmp[i].AffirmF == 1)
						{
							continue;
						}
					}
					m_bShow=m_evtdb.IsNeedShow(m_evtdb.evt_tmp[i].TypeID,m_evtdb.evt_tmp[i].SubtypeID);//BYTE TypeID, BYTE SubtypeID);
					if(m_bShow)
					{
						if(m_evtdb.evt_tmp[i].TypeID == 12)
							Is_Soe=true;
						crText = m_evtdb.GetWarnColor(m_evtdb.evt_tmp[i].TypeID,m_evtdb.evt_tmp[i].SubtypeID);
						nSubItem= 0; 
						m_lsEvent.InsertItem(nItem,str,crText,crBk);
						m_lsEvent.SetItemData(nItem,i);
						m_lsEvent.SetItemType(nItem,m_evtdb.evt_tmp[i].TypeID,m_evtdb.evt_tmp[i].SubtypeID);
						if(m_evtdb.evt_tmp[nItem].AffirmF ==0)
						{
							m_lsEvent.SetEnabled(nItem,1);
							m_lsEvent.SetCheckbox(nItem, nSubItem, 0);
							str = "N";	 str.Format("%d",nItem);
							m_lsEvent.SetItemText(nItem,nSubItem,str,crText,crBk);
						}
						else
						{
							m_lsEvent.SetCheckbox(nItem,nSubItem,1);
							m_lsEvent.SetEnabled(nItem,FALSE);
							str = "Y";
							m_lsEvent.SetItemText(nItem,nSubItem,str,crText,crBk);
						}
						nSubItem ++;
						if(Is_Soe)
						{
							m_evtdb.GetDTMStr(m_evtdb.evt_tmp[i].Time,m_evtdb.evt_tmp[i].MilliSec,dt);
							str = dt;
							Is_Soe=false;
						}
						else
						{
							m_evtdb.GetDTMStr(m_evtdb.evt_tmp[i].Time,m_evtdb.evt_tmp[i].MilliSec,dt,false);
							str = dt;
						}
						m_lsEvent.SetItemText(nItem,nSubItem,str,crText,crBk);
						str.Empty();
						nSubItem ++;
						m_lsEvent.SetItemText(nItem,nSubItem,m_evtdb.evt_tmp[i].Describe,crText,crBk);
						nItem++;
					}
				}
			}
		}
		else//显示所有
		{
			nItem = 0;
			for(int i =0;i<m_evtdb.nEvt;i++)
			{
				if(m_evtdb.EvtCmp(&m_evtdb.evt_tmp[i],&m_evtdb.evt0))//2006-7-15
					continue;
				//	if(m_evtdb.evt[i].prcF !=1) continue;
				if(m_bOnlyNew)
				{
					if(m_evtdb.evt_tmp[i].AffirmF == 1)
					{
						continue;
					}
				}
				m_bShow=m_evtdb.IsNeedShow(m_evtdb.evt_tmp[i].TypeID,m_evtdb.evt_tmp[i].SubtypeID);//BYTE TypeID, BYTE SubtypeID);
				if(m_bShow)
				{
					if(m_evtdb.evt_tmp[i].TypeID == 12)
							Is_Soe=true;
					crText = m_evtdb.GetWarnColor(m_evtdb.evt_tmp[i].TypeID,m_evtdb.evt_tmp[i].SubtypeID);
					nSubItem = 0;
					m_lsEvent.InsertItem(nItem,str,crText,crBk);
					m_lsEvent.SetItemData(nItem,i);
						m_lsEvent.SetItemType(nItem,m_evtdb.evt_tmp[i].TypeID,m_evtdb.evt_tmp[i].SubtypeID);
					if(m_evtdb.evt_tmp[i].AffirmF ==0)
					{
						m_lsEvent.SetEnabled(nItem,1);
						m_lsEvent.SetCheckbox(nItem, nSubItem, 0);
					 	str.Format("%d",nItem);
					//tr = "N";
						m_lsEvent.SetItemText(nItem,nSubItem,str,crText,crBk);
					}
					else
					{
						m_lsEvent.SetCheckbox(nItem,nSubItem,1);
						m_lsEvent.SetEnabled(nItem,FALSE);
						str = "Y";	str.Format("%d",nItem);
						m_lsEvent.SetItemText(nItem,nSubItem,str,crText,crBk);
					}
					nSubItem ++;
					if(Is_Soe)
					{
						m_evtdb.GetDTMStr(m_evtdb.evt_tmp[i].Time,m_evtdb.evt_tmp[i].MilliSec,dt);
						str = dt;
						Is_Soe=false;
					}
					else
					{
						m_evtdb.GetDTMStr(m_evtdb.evt_tmp[i].Time,m_evtdb.evt_tmp[i].MilliSec,dt,false);
						str = dt;
					}
					m_lsEvent.SetItemText(nItem,nSubItem,str,crText,crBk);
					str.Empty();
					
					TypeID = m_evtdb.evt_tmp[i].TypeID;
					SubtypeID = m_evtdb.evt_tmp[i].SubtypeID;
 				crText =   m_evtdb.GetWarnColor(TypeID,SubtypeID);//
					nSubItem ++	;
					m_lsEvent.SetItemText(nItem,nSubItem,m_evtdb.evt_tmp[i].Describe,crText,crBk);
					nItem++;
				}
			}
			
		}//end show all
		CRect rect;
		m_lsEvent.GetSubItemRect(0,0,LVIR_BOUNDS,rect);
		int iHeight=rect.Height ()*(nItem-1);
		CSize size;
		size.cy =iHeight;
		size.cx=0;
		m_lsEvent.Scroll (size);
	}//end 顺序
	
	else //逆序
	{
		if((WORD)(m_evtdb.m_iCurEvtDisType)!=0xffff)
		{
			for(int i =m_evtdb.nEvt-1 ;i>=0;i--)
			{
				if(m_evtdb.EvtCmp(&m_evtdb.evt_tmp[i],&m_evtdb.evt0))//2006-7-15
					continue;
				type = MAKEWORD(m_evtdb.evt_tmp[i].SubtypeID,m_evtdb.evt_tmp[i].TypeID);
				if(type == (WORD)(m_evtdb.m_iCurEvtDisType))
				{
					if(m_bOnlyNew)
					{
						if(m_evtdb.evt_tmp[i].AffirmF == 1)
						{
							continue;
						}
					}
					m_bShow=m_evtdb.IsNeedShow(m_evtdb.evt_tmp[i].TypeID,m_evtdb.evt_tmp[i].SubtypeID);//BYTE TypeID, BYTE SubtypeID);
					if(m_bShow)
					{
						if(m_evtdb.evt_tmp[i].TypeID == 12)
							Is_Soe=true;
						crText = m_evtdb.GetWarnColor(m_evtdb.evt_tmp[i].TypeID,m_evtdb.evt_tmp[i].SubtypeID);
						nSubItem= 0; 
						m_lsEvent.InsertItem(nItem,str,crText,crBk);
						m_lsEvent.SetItemData(nItem,i);
						m_lsEvent.SetItemType(nItem,m_evtdb.evt_tmp[i].TypeID,m_evtdb.evt_tmp[i].SubtypeID);
						if(m_evtdb.evt[i].AffirmF ==0)
						{
							m_lsEvent.SetEnabled(nItem,1);
							m_lsEvent.SetCheckbox(nItem, nSubItem, 0);
							str = "N";	 str.Format("%d",nItem);
							m_lsEvent.SetItemText(nItem,nSubItem,str,crText,crBk);
						}
						else
						{
							m_lsEvent.SetCheckbox(nItem,nSubItem,1);
							m_lsEvent.SetEnabled(nItem,FALSE);
							str = "Y";	str.Format("%d",nItem);
							m_lsEvent.SetItemText(nItem,nSubItem,str,crText,crBk);
						}
						nSubItem ++;
						if(Is_Soe)
						{
							m_evtdb.GetDTMStr(m_evtdb.evt_tmp[i].Time,m_evtdb.evt_tmp[i].MilliSec,dt);
							str = dt;
							Is_Soe=false;
						}
						else
						{
							m_evtdb.GetDTMStr(m_evtdb.evt_tmp[i].Time,m_evtdb.evt_tmp[i].MilliSec,dt,false);
							str = dt;
						}
						m_lsEvent.SetItemText(nItem,nSubItem,str,crText,crBk);
						str.Empty();
						nSubItem ++;
						m_lsEvent.SetItemText(nItem,nSubItem,m_evtdb.evt_tmp[i].Describe,crText,crBk);	
						nItem++;
					}
				}
			}
		}
		else//显示所有
		{
			nItem = 0;
			//////过虑。。。
			for(int i =m_evtdb.nEvt-1 ;i>=0;i--)
			{
				if(m_evtdb.EvtCmp(&m_evtdb.evt_tmp[i],&m_evtdb.evt0))//2006-7-15
					continue;
				//	if(m_evtdb.evt[i].prcF !=1) continue;
				if(m_bOnlyNew )//&& m_evtdb.evt[i].IfShow
				{
					if(m_evtdb.evt_tmp[i].AffirmF == 1)
					{
						continue;
					}			
				}
				
				m_bShow=m_evtdb.IsNeedShow(m_evtdb.evt_tmp[i].TypeID,m_evtdb.evt_tmp[i].SubtypeID);//BYTE TypeID, BYTE SubtypeID);
				if(m_bShow)
				{
					if(m_evtdb.evt_tmp[i].TypeID == 12)
							Is_Soe=true;
					crText = m_evtdb.GetWarnColor(m_evtdb.evt_tmp[i].TypeID,m_evtdb.evt_tmp[i].SubtypeID);
					nSubItem = 0;
					m_lsEvent.InsertItem(nItem,str,crText,crBk);
					m_lsEvent.SetItemData(nItem,i);
						m_lsEvent.SetItemType(nItem,m_evtdb.evt_tmp[i].TypeID,m_evtdb.evt_tmp[i].SubtypeID);
					if(m_evtdb.evt_tmp[i].AffirmF ==0)
					{
						m_lsEvent.SetEnabled(nItem,1);
						m_lsEvent.SetCheckbox(nItem, nSubItem, 0);
						str = "N";	 str.Format("%d",nItem);
						m_lsEvent.SetItemText(nItem,nSubItem,str,crText,crBk);
					}
					else
					{
						m_lsEvent.SetCheckbox(nItem,nSubItem,1);
						m_lsEvent.SetEnabled(nItem,FALSE);
						str = "Y"; str.Format("%d",nItem);
						m_lsEvent.SetItemText(nItem,nSubItem,str,crText,crBk);
					}
					nSubItem ++;
					if(Is_Soe)
					{
						m_evtdb.GetDTMStr(m_evtdb.evt_tmp[i].Time,m_evtdb.evt_tmp[i].MilliSec,dt);
						str = dt;
						Is_Soe=false;
					}
					else
					{
						m_evtdb.GetDTMStr(m_evtdb.evt_tmp[i].Time,m_evtdb.evt_tmp[i].MilliSec,dt,false);
						str = dt;
					}

					m_lsEvent.SetItemText(nItem,nSubItem,str,crText,crBk);
					str.Empty();
					
					nSubItem ++	;		// 
					m_lsEvent.SetItemText(nItem,nSubItem,m_evtdb.evt_tmp[i].Describe,crText,crBk);
					nItem++;
				}
				
				
			}
		}
	}//end 顺序

	//打印新事件
	//if(m_bPrint)m_evtdb.PrintWarn();
	//if(m_bVoice)m_evtdb.VoiceWarn();
 	m_lsEvent.UnlockWindowUpdate();	
		if(!IsWindowVisible())
	ShowWindow(SW_SHOWMAXIMIZED);
		SetForegroundWindow();
//	Invalidate();
	
}
void CRealEvView::InitDropList()
{
	if(!m_evtdb.IsInit())return;
	CMainFrame *pFrame = (CMainFrame*)AfxGetApp()->m_pMainWnd;
	m_pCombo = (CComboBox*) &(pFrame->m_wndToolBar.m_combobox);
	m_pCombo->ResetContent();
	m_pCombo->AddString("用户定义事件");
	
	
	WORD type = 0xffff;
	DWORD dwItemData;
	m_pCombo->SetItemData(0,type);
	
	int nCounts = m_evtdb.GetEvtTypeCounts();
	if(nCounts <=0)return;
	WORD *pType = new WORD[nCounts];
	CString *pNames =new CString[nCounts];
	COLORREF *pColor = new COLORREF[nCounts];
	m_evtdb.GetEventType(pNames,pType,pColor);
	int j=0;
	for(int i = 1;i<nCounts+1;i++)
	{
		type = (WORD)(*pType); 
		dwItemData = MAKELONG(type,0);
		type = LOWORD(dwItemData);
		
		if(m_evtdb.GetIfShow(i-1))
		{	
			j++;
			m_pCombo->AddString(*pNames);
			m_pCombo->SetItemData(j,dwItemData);
			
		}
		
		pNames++;
		pType++;
		
	}
	pNames -=nCounts;
	pType -= nCounts;
	m_pCombo->SetCurSel(0);
	m_pCombo->UpdateData(true);
	OnSelchangeCombo();
	if(!pNames)
		delete []pNames;
	if(!pType)
		delete []pType;
	m_evtdb.SetCurDisType(0xffff);
}

void CRealEvView::OnTimer(UINT nIDEvent) 
{
	if(nIDEvent == 1111)
		UpdateWarn();
	CFormView::OnTimer(nIDEvent);
}
/*//发送消息给yhui
void CRealEvView::OnTest() 
{
CString msg;
msg = "msg";
msg.ReleaseBuffer();

⌨️ 快捷键说明

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