📄 realevvi.cpp
字号:
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--)
{
type = MAKEWORD(m_evtdb.evt[i].SubtypeID,m_evtdb.evt[i].TypeID);
if(type == (WORD)(m_evtdb.m_iCurEvtDisType))
{
if(m_bOnlyNew)
{
if(m_evtdb.evt[i].AffirmF == 1)
{
continue;
}
}
m_bShow=m_evtdb.IsNeedShow(m_evtdb.evt[i].TypeID,m_evtdb.evt[i].SubtypeID);//BYTE TypeID, BYTE SubtypeID);
if(m_bShow)
{
crText = m_evtdb.GetWarnColor(m_evtdb.evt[i].TypeID,m_evtdb.evt[i].SubtypeID);
nSubItem= 0;
m_lsEvent.InsertItem(nItem,str,crText,crBk);
m_lsEvent.SetItemData(nItem,i);
if(m_evtdb.evt[i].AffirmF ==0)
{
m_lsEvent.SetEnabled(nItem,1);
m_lsEvent.SetCheckbox(nItem, nSubItem, 0);
str = "N";
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 ++;
m_evtdb.GetDTMStr(m_evtdb.evt[i].Time,m_evtdb.evt[i].MilliSec,dt);
str = dt;
m_lsEvent.SetItemText(nItem,nSubItem,str,crText,crBk);
str.Empty();
nSubItem ++;
m_lsEvent.SetItemText(nItem,nSubItem,m_evtdb.evt[i].Describe,crText,crBk);
nItem++;
}
}
}
}
else//显示所有
{
nItem = 0;
//////过虑。。。
for(int i =m_evtdb.nEvt-1 ;i>=0;i--)
{
// if(m_evtdb.evt[i].prcF !=1) continue;
if(m_bOnlyNew )//&& m_evtdb.evt[i].IfShow
{
if(m_evtdb.evt[i].AffirmF == 1)
{
continue;
}
}
m_bShow=m_evtdb.IsNeedShow(m_evtdb.evt[i].TypeID,m_evtdb.evt[i].SubtypeID);//BYTE TypeID, BYTE SubtypeID);
if(m_bShow)
{
crText = m_evtdb.GetWarnColor(m_evtdb.evt[i].TypeID,m_evtdb.evt[i].SubtypeID);
nSubItem = 0;
m_lsEvent.InsertItem(nItem,str,crText,crBk);
m_lsEvent.SetItemData(nItem,i);
if(m_evtdb.evt[i].AffirmF ==0)
{
m_lsEvent.SetEnabled(nItem,1);
m_lsEvent.SetCheckbox(nItem, nSubItem, 0);
str = "N";
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 ++;
m_evtdb.GetDTMStr(m_evtdb.evt[i].Time,m_evtdb.evt[i].MilliSec,dt);
str = dt;
m_lsEvent.SetItemText(nItem,nSubItem,str,crText,crBk);
str.Empty();
nSubItem ++ ; //
m_lsEvent.SetItemText(nItem,nSubItem,m_evtdb.evt[i].Describe,crText,crBk);
nItem++;
}
}
}
}//end 顺序
//打印新事件
//if(m_bPrint)m_evtdb.PrintWarn();
//if(m_bVoice)m_evtdb.VoiceWarn();
m_lsEvent.UnlockWindowUpdate();
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();
WPARAM wParm = 111;
ATOM atom = GlobalAddAtom("xxxxasofnas");
::SendMessage(HWND_BROADCAST,nMsgWarn,wParm,(LPARAM)atom);
}
*/
void CRealEvView::OnCheck(WPARAM w,LPARAM p)
{
int nItem = w;
if(nItem <0)return;
int ord = int(m_lsEvent.GetItemData(nItem));
m_evtdb.cursor = ord;//改成itemdata
if(m_evtdb.evt[ord].AffirmF != 0)return;
bool rtn= m_evtdb.AckEvent();
if(rtn)
{
m_lsEvent.SetEnabled(nItem,FALSE);
m_lsEvent.SetCheckbox(nItem,0,1);
}
else
m_lsEvent.SetCheckbox(nItem,0,0);
}
void CRealEvView::OnCheckAll(WPARAM w,LPARAM p)
{
bool rtn;
int nItemCounts = m_lsEvent.GetItemCount();
DWORD dwItemData;
int ord ;
for(int i = 0;i< nItemCounts;i++)
{
dwItemData = m_lsEvent.GetItemData(i);
ord = LOWORD(dwItemData);
if(1 == m_evtdb.evt[ord].AffirmF)continue;
m_evtdb.cursor = ord;
rtn= m_evtdb.AckEvent();
if(rtn)
{
m_lsEvent.SetCheckbox(i,0,1);
m_lsEvent.SetEnabled(i,FALSE);
}
}
m_lsEvent.Invalidate();
}
void CRealEvView::OnColor()
{
CDlgColor dlg(this,&m_evtdb);
if(IDOK == dlg.DoModal())
{
m_bManulUpdate = 1;
UpdateWarn();
m_bManulUpdate = 0;
}
}
void CRealEvView::OnEvtTypeConfig()
{
CEvtTypeConfigDlg dlg(this,&m_evtdb);
dlg.DoModal();
// CEvtTypeConfig EvtTypeConfig(this,&m_evtdb);;
// EvtTypeConfig.DoModal();
}
void CRealEvView::OnConfirm()
{
OnAckAll();
}
void CRealEvView::OnDisOrd()
{
if(m_direct == up)return;
m_direct = up;
m_bManulUpdate = 1;
UpdateWarn();
m_bManulUpdate = 0;
}
void CRealEvView::OnOrd()
{
if(m_direct == down)return;
m_direct = down;
m_bManulUpdate = 1;
UpdateWarn();
m_bManulUpdate = 0;
}
void CRealEvView::OnSelectNew()
{
if(m_bOnlyNew == 0)m_bOnlyNew=1;
else m_bOnlyNew = 0;
m_bManulUpdate = 1;
UpdateWarn();
m_bManulUpdate = 0;
}
void CRealEvView::OnUpdateSelectNew(CCmdUI* pCmdUI)
{
pCmdUI->SetCheck(m_bOnlyNew?1:0);
}
void CRealEvView::OnPrintNewEvent()
{
m_bPrint = m_bPrint?0:1;
if(m_bPrint)
{
m_evtdb.m_printf=true;
}
else
m_evtdb.m_printf=false;
}
void CRealEvView::OnUpdatePrintNewEvent(CCmdUI* pCmdUI)
{
pCmdUI->SetCheck(m_bPrint?1:0);
}
void CRealEvView::OnFilePrint()
{
if(m_pPreviewList)
{
delete m_pPreviewList;
m_pPreviewList = NULL;
}
m_pPreviewList = new CListCtrlPrint;
CString str1="YH-5000:",str="实时事件";
str=str1+str;
m_pPreviewList->csPageHead = str;
CTime time=CTime::GetCurrentTime();
str=time.Format("%c");
m_pPreviewList->csPageFooter =str;
m_pPreviewList->csPage = "第 %d 页:共 %d 页"; m_pPreviewList->pList = &m_lsEvent;
m_pPreviewList->OnFilePrint();
}
void CRealEvView::OnFilePrintPreview()
{
if ( m_lsEvent.GetItemCount()<=0 )
{
MessageBox("没有可供预览的记录!");
return;
}
if(m_pPreviewList)
{
delete m_pPreviewList;
m_pPreviewList = NULL;
}
m_pPreviewList = new CListCtrlPrint;
CString str1="YH-5000:",str="实时事件";
str=str1+str;
m_pPreviewList->csPageHead = str;
CTime time=CTime::GetCurrentTime();
str=time.Format("%c");
m_pPreviewList->csPageFooter =str;
m_pPreviewList->csPage = "第 %d 页:共 %d 页";
m_pPreviewList->pList=&m_lsEvent;
m_pPreviewList->PrintPreview();
}
void CRealEvView::OnAck()
{
m_evtdb.AckEvent();
}
void CRealEvView::OnAckAll()
{
m_evtdb.AckAllEvent();
m_bManulUpdate = 1;
UpdateWarn();
m_bManulUpdate = 0;
}
void CRealEvView::OnBrowse()
{
((CMainFrame*)AfxGetMainWnd())->ShowWindow(SW_MAXIMIZE);
}
void CRealEvView::OnExit()
{
::SendMessage(((CMainFrame*)AfxGetMainWnd())->m_hWnd,WM_COMMAND,ID_APP_SUSPEND,0);
}
void CRealEvView::OnHideMsgWnd()
{
m_pWndMsg->ShowWindow(SW_HIDE);
}
void CRealEvView::OnShowMsgWnd()
{
if(m_pWndMsg->IsWindowVisible())
{
m_pWndMsg->ShowWindow(SW_HIDE);
}
else
{
m_pWndMsg->ShowWindow(SW_SHOW);
}
}
void CRealEvView::OnUpdateShowMsgWnd(CCmdUI* pCmdUI)
{
pCmdUI->SetCheck(m_pWndMsg->IsWindowVisible());
}
void CRealEvView::OnShapeRect()
{
if(m_pWndMsg->m_Shape == ELLIPSEWND)
{
m_pWndMsg->DestroyWindow();
if(NULL!=m_pWndMsg)
delete m_pWndMsg;
m_pWndMsg = new CMsgWnd;
m_pWndMsg->m_Shape = RECTWND;
m_pWndMsg->m_iWidth = 400;
m_pWndMsg->m_iHeight = 50;
m_pWndMsg->Create(m_hWnd);
m_pWndMsg->m_bStuck = true;
int cx = GetSystemMetrics(SM_CXSCREEN);
int cy = GetSystemMetrics(SM_CYSCREEN);
CRect rectCl ;
m_pWndMsg->GetClientRect(&rectCl);
rectCl.top = cy -rectCl.bottom;
rectCl.bottom = cy;
m_pWndMsg->MoveWindow(&rectCl);
// m_pWndMsg->ShowWindow(SW_SHOW);4.16
m_pWndMsg->ShowWindow(SW_HIDE);
m_bManulUpdate = 1;
UpdateWarn();
m_bManulUpdate = 0;
}
}
void CRealEvView::OnShapeEllipse()
{
if(m_pWndMsg->m_Shape == RECTWND)
{
m_pWndMsg->DestroyWindow();
if(NULL!=m_pWndMsg)
delete m_pWndMsg;
m_pWndMsg = new CMsgWnd;
m_pWndMsg->m_Shape = ELLIPSEWND;
m_pWndMsg->m_iWidth = 200;
m_pWndMsg->m_iHeight = 100;
m_pWndMsg->Create(m_hWnd);
m_pWndMsg->m_bStuck = true;
int cx = GetSystemMetrics(SM_CXSCREEN);
int cy = GetSystemMetrics(SM_CYSCREEN);
CRect rectCl ;
m_pWndMsg->GetClientRect(&rectCl);
rectCl.left = cx - rectCl.right;
rectCl.top = cy -rectCl.bottom-20;
rectCl.bottom = cy-20;
rectCl.right = cx;
m_pWndMsg->MoveWindow(&rectCl);
// m_pWndMsg->ShowWindow(SW_SHOW);
m_pWndMsg->ShowWindow(SW_HIDE);
m_bManulUpdate = 1;
UpdateWarn();
m_bManulUpdate = 0;
}
}
void CRealEvView::OnDbClickMsgWnd(WPARAM w,LPARAM p)
{
m_evtdb.AckEvent();
m_pWndMsg->ShowWindow(SW_HIDE);
}
void CRealEvView::OnVoice()
{
m_bVoice = m_bVoice? 0:1;
if(m_bVoice)
{
m_evtdb.m_voiceF=true;
}
else
{
m_evtdb.m_voiceF=false;
}
}
void CRealEvView::OnUpdateVoice(CCmdUI* pCmdUI)
{
pCmdUI->SetCheck(m_bVoice?1:0);
}
void CRealEvView::OnUpdateINDICATOR_NAME(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
pCmdUI->Enable(TRUE);
}
void CRealEvView::OnUpdateINDICATOR_NAME1(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
pCmdUI->Enable(TRUE);
}
void CRealEvView::OnAlarmSet()
{
// TODO: Add your command handler code here
CDiaWarnSet dlg(this,&m_evtdb);
dlg.DoModal();
}
void CRealEvView::OnUpdateOrd(CCmdUI* pCmdUI)
{
pCmdUI->SetCheck(m_direct?down:up);
}
void CRealEvView::OnUpdateDisOrd(CCmdUI* pCmdUI)
{
pCmdUI->SetCheck(m_direct?up:down);
}
void CRealEvView::OnPrepareDC(CDC* pDC, CPrintInfo* pInfo)
{
CFormView::OnPrepareDC(pDC, pInfo);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -