📄 realevview.cpp
字号:
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 + -