📄 moinorcentredlg.cpp
字号:
{
GetDlgItem(ID_PIC[i])->SetWindowText("无画面");
}
else
{GetDlgItem(ID_PIC[i])->SetWindowText(ninesitename[i]);
CDC* dc;
dc=GetDlgItem(ID_PIC[i])->GetDC();
CRect rec;
GetDlgItem(ID_PIC[i])->GetClientRect(rec);
fourdib[i].Display(dc,10,10,rec.Width()-10,rec.Height()-10,0,0,ninedib[i].GetWidth(),ninedib[i].GetHeight());
ReleaseDC(dc);
}
}
break;
}
case NineDsplay:{
GetDlgItem(ID_PICTURE)->ShowWindow(SW_HIDE);
for(int i=0;i<9;i++)
{GetDlgItem(ID_PIC[i])->Invalidate();
GetDlgItem(ID_PIC[i])->ShowWindow(SW_SHOW);
}
for(i=0;i<4;i++)
GetDlgItem(ID_PIC[i])->MoveWindow(picrec[i]);
for(i=0;i<9;i++)
{
if(ninedib[i].m_hDib==NULL)
GetDlgItem(ID_PIC[i])->SetWindowText("无画面");
else
{
GetDlgItem(ID_PIC[i])->SetWindowText(ninesitename[i]);
CDC* dc;
dc=GetDlgItem(ID_PIC[i])->GetDC();
CRect rec;
GetDlgItem(ID_PIC[i])->GetClientRect(rec);
ninedib[i].Display(dc,10,10,rec.Width()-10,rec.Height()-10,0,0,ninedib[i].GetWidth(),ninedib[i].GetHeight());
ReleaseDC(dc);
}
}
break;
}
case TurnAll:{
GetDlgItem(ID_PICTURE)->ShowWindow(SW_HIDE);
for(int i=1;i<9;i++)
GetDlgItem(ID_PIC[i])->ShowWindow(SW_HIDE);
GetDlgItem(ID_PIC[0])->ShowWindow(SW_SHOW);
GetDlgItem(ID_PIC[0])->SetWindowText(onesitename);
CDC* dc;
dc=GetDlgItem(ID_PIC[0])->GetDC();
CRect rec;
GetDlgItem(ID_PIC[0])->GetClientRect(rec);
int width=onedib.GetWidth();
int height=onedib.GetHeight();
CRect rect;
GetDlgItem(ID_PICTURE)->GetWindowRect(rect);
ScreenToClient(&rect);
int widthsub=(rect.Width()-width-5)/2;
int heightsub=(rect.Height()-height-5)/2;
rect.DeflateRect(widthsub,heightsub);
GetDlgItem(ID_PIC[0])->MoveWindow(rect);
onedib.Display(dc,0,0);
ReleaseDC(dc);
break;
}
}
return 0;
}
void CMoinorCentreDlg::OnCaptureChanged(CWnd *pWnd)
{
// TODO: Add your message handler code here
CDialog::OnCaptureChanged(pWnd);
PostMessage(WM_DRAW,externi,0);
}
void CMoinorCentreDlg::OnDatabase()
{
datebase.Create(IDD_DATABASEACCESS,this);
datebase.ShowWindow(SW_SHOW);
}
void CMoinorCentreDlg::OnRadio1()
{
CString is;
SiteNum.RemoveAll();
for(int j=0;j<m_comb2.GetCount();j++)
{
m_comb2.GetLBText(j,is);
SiteNum.Add((BYTE)atoi(is));
}
if(mst.monitortype==AllMonitor)
AfxMessageBox("已经处于轮询状态");
else
{
mst.monitortype=AllMonitor;
siteidindex=0;
if(!mst.busy)
{
PostMessage(WM_SEND,mode0,SiteNum.GetAt(siteidindex));
mst.busy=TRUE;
}
}
}
void CMoinorCentreDlg::OnRadio2()
{
mst.monitortype=SomeMonitor;
siteidindex=0;
if(multdialog.DoModal()==IDOK)
{if(!mst.busy)
PostMessage(WM_SEND,mode0,SiteNum.GetAt(siteidindex));
mst.busy=TRUE;
}
}
void CMoinorCentreDlg::OnRadio3()
{
mst.monitortype=OneMonitor;
Cpicnum picnum1;// TODO: Add your control notification handler code here
picnum1.DoModal();
CString ss;
ss.Format("picnummode=%d",picnummode);
AfxMessageBox(ss);
AfxMessageBox("请选择监控点");
}
void CMoinorCentreDlg::OnSelendokCombo2()
{
if(mst.monitortype==OneMonitor)
{
UpdateData();
//AfxMessageBox(m_siteid);
SiteNum.RemoveAll();
SiteNum.Add(atoi(m_siteid));
siteidindex=0;
if(!mst.busy)
PostMessage(WM_SEND,mode0,SiteNum.GetAt(siteidindex));
mst.busy=TRUE; // TODO: Add your control notification handler code here
}
}
void CMoinorCentreDlg::OnPicset()
{
picset picset1;
if(picset1.DoModal()==IDOK)
{ CString dd;
dd.Format("%x",picmode);
AfxMessageBox(dd);
}
}
//DEL BOOL CMoinorCentreDlg::OnMouseWheel(UINT nFlags, short zDelta, CPoint pt)
//DEL {
//DEL // TODO: Add your message handler code here and/or call default
//DEL
//DEL
//DEL return CDialog::OnMouseWheel(nFlags, zDelta, pt);
//DEL }
//DEL BOOL CMoinorCentreDlg::PreTranslateMessage(MSG* pMsg)
//DEL {
//DEL switch(pMsg->message)
//DEL {
//DEL case WM_MOUSEWHEEL:
//DEL {
//DEL int k;
//DEL m_slider2.GetTicPos(k);
//DEL CString kk;
//DEL kk.Format("%d",k);
//DEL GetDC()->TextOut(100,100,kk);
//DEL }break;
//DEL }
//DEL
//DEL return CDialog::PreTranslateMessage(pMsg);
//DEL }
void CMoinorCentreDlg::OnOne()
{
DisplayMode=TurnAll;
PostMessage(WM_DRAW,externi,100);
}
void CMoinorCentreDlg::OnFour()
{
DisplayMode=FourDsplay;
PostMessage(WM_DRAW,externi,100);
}
void CMoinorCentreDlg::OnNine()
{
DisplayMode=NineDsplay;
PostMessage(WM_DRAW,externi,100);
}
void CMoinorCentreDlg::OnZoom()
{
DisplayMode=OneZoom;
PostMessage(WM_DRAW,externi,100);
// TODO: Add your control notification handler code here
}
void CMoinorCentreDlg::OnMove(int x, int y)
{
CDialog::OnMove(x, y);
if(intosize)
{
PostMessage(WM_DRAW,externi,SiteNum.GetAt(siteidindex));
}
}
//DEL void CMoinorCentreDlg::OnButton3()
//DEL {
//DEL
//DEL }
void CMoinorCentreDlg::OnSclose()
{CString name;
m_sclose.GetWindowText(name);
if(name=="关闭串口")
{//m_bSerialPort.StopMonitoring();
m_bSerialPort.ClosePort();
mst.busy=FALSE;
state=idle;
CS=0;
siteidindex=0;
externi=0;
m_bcomOpened=FALSE;
m_sclose.SetWindowText("打开串口");
}
else
{
if(!m_bSerialPort.InitPort(this,currentport,buad,p,databit,stopbit,EV_RXFLAG|EV_RXCHAR,1024))
AfxMessageBox("串口被占用");
else
{
m_bSerialPort.StartMonitoring();
m_bcomOpened=TRUE;
m_sclose.SetWindowText("关闭串口");
}
}
}
void CMoinorCentreDlg::OnCustomdrawSlider4(NMHDR* pNMHDR, LRESULT* pResult)
{
*pResult = 0;
}
void CMoinorCentreDlg::OnCustomdrawSlider1(NMHDR* pNMHDR, LRESULT* pResult)
{
int k=m_slider4.GetPos();//获得亮度
CString kk;
kk.Format("%d",k);
AfxMessageBox(kk);
*pResult = 0;
}
void CMoinorCentreDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{int k=((CMacSliderCtrl*)pScrollBar)->GetPos();//获得亮度
int id=((CMacSliderCtrl*)pScrollBar)->GetDlgCtrlID();
switch(id)
{//switchid
case IDC_SLIDER4:
{//case IDC_SLIDER4:
CString kk;
kk.Format("%d",k);
GetDlgItem(ID_LUMIN)->SetWindowText(kk);
CRect rec;
GetDlgItem(ID_LUMIN)->GetWindowRect(rec);
ScreenToClient(&rec);
this->InvalidateRect(&rec);
switch(DisplayMode)
{
case OneZoom:{if(onedib.m_hDib)
{
onedib.AdjustBrightness(k);
PostMessage(WM_DRAW,externi,SiteNum.GetAt(siteidindex));
}
break;
}
case FourDsplay:{for(int i=0;i<4;i++)
{
if(fourdib[i].m_hDib)
{fourdib[i].AdjustBrightness(k);
}
}
PostMessage(WM_DRAW,externi,SiteNum.GetAt(siteidindex));
break;
}
case NineDsplay:{for(int i=0;i<9;i++)
{
if(ninedib[i].m_hDib)
{ninedib[i].AdjustBrightness(k);
}
}
PostMessage(WM_DRAW,externi,SiteNum.GetAt(siteidindex));
break;
}
case TurnAll:{if(onedib.m_hDib)
{
onedib.AdjustBrightness(k);
PostMessage(WM_DRAW,externi,SiteNum.GetAt(siteidindex));
}
break;
}
}
break;
}//case IDC_SLIDER4:
case IDC_SLIDER2:{//IDC_SLIDER2
CString kk;
kk.Format("%d",k);
GetDlgItem(ID_CONTRAST)->SetWindowText(kk);
CRect rec;
GetDlgItem(ID_CONTRAST)->GetWindowRect(rec);
ScreenToClient(&rec);
this->InvalidateRect(&rec);
switch(DisplayMode)
{
case OneZoom:{if(onedib.m_hDib)
{
onedib.AdjustContrast(k);
PostMessage(WM_DRAW,externi,SiteNum.GetAt(siteidindex));
}
break;
}
case FourDsplay:{for(int i=0;i<4;i++)
{
if(fourdib[i].m_hDib)
{fourdib[i].AdjustContrast(k);
}
}
PostMessage(WM_DRAW,externi,SiteNum.GetAt(siteidindex));
break;
}
case NineDsplay:{for(int i=0;i<9;i++)
{
if(ninedib[i].m_hDib)
{ninedib[i].AdjustContrast(k);
}
}
PostMessage(WM_DRAW,externi,SiteNum.GetAt(siteidindex));
break;
}
case TurnAll:{if(onedib.m_hDib)
{
onedib.AdjustContrast(k);
PostMessage(WM_DRAW,externi,SiteNum.GetAt(siteidindex));
}
break;
}
}
break;
}//IDC_SLIDER2
}//switch id
CDialog::OnHScroll(nSBCode, nPos, pScrollBar);
}
void CMoinorCentreDlg::OnSset()
{
CSerialDlg sset;
if(IDOK==sset.DoModal())
{ m_bSerialPort.ClosePort();
mst.busy=FALSE;
state=idle;
CS=0;
siteidindex=0;
externi=0;
m_bcomOpened=FALSE;
char port=sset.m_sport.GetAt(3);
CString name;
m_sclose.GetWindowText(name);
if(name=="关闭串口")
{
if(
!m_bSerialPort.InitPort(this,atoi(&port),
atoi(sset.m_sBaud),sset.m_sParity[0],
atoi(sset.m_sDataBits),atoi(sset.m_sStopbit),
EV_RXFLAG|EV_RXCHAR,1024))
AfxMessageBox("串口被占用");
else
{
m_bSerialPort.StartMonitoring();
m_bcomOpened=TRUE;
}
}//name=="关闭串口"
else
{currentport=port;
buad=atoi(sset.m_sBaud);
stopbit=atoi(sset.m_sStopbit);
databit=atoi(sset.m_sDataBits);
p=sset.m_sParity[0];
}
}
}
void CMoinorCentreDlg::OnIntellec()
{
CDectectSet set; // TODO: Add your control notification handler code here
set.DoModal();
}
void CMoinorCentreDlg::OnReset()
{
mst.busy=FALSE;
state=idle;
CS=0;
siteidindex=0;
externi=0; // TODO: Add your control notification handler code here
}
void CMoinorCentreDlg::OnButton2()
{
this->Invalidate();
}
void CMoinorCentreDlg::OnTimer(UINT nIDEvent)
{
switch(nIDEvent)
{
case 1:SetProcessWorkingSetSize(GetCurrentProcess(),20000,25000);
break;
case 2: {if(alarmid<10)
{
if(m_alarm[alarmid].IsWindowEnabled())
m_alarm[alarmid].EnableWindow(FALSE);
else
{
m_alarm[alarmid].EnableWindow(TRUE);
m_alarm[alarmid].SetIcon(IDI_RED);
}
}
}
}
CDialog::OnTimer(nIDEvent);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -