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

📄 pictureshow.cpp

📁 实时监控
💻 CPP
📖 第 1 页 / 共 2 页
字号:
		pPicS[i]->strFile = strFile ;
		pPicS[i]->name = DlgStr[i].name ;
		switch(DlgStr[i].picnum)
		{
			case 1:strcpy(pPicS[i]->pPicString,strFile) ;
				strcat(pPicS[i]->pPicString,addrstr1) ;
				break ;
			case 2:strcpy(pPicS[i]->pPicString,strFile) ;
				strcat(pPicS[i]->pPicString,addrstr2) ;
				break ;
			case 3:strcpy(pPicS[i]->pPicString,strFile) ;
				strcat(pPicS[i]->pPicString,addrstr3) ;
				break ;
			default:
				break ;
			}
		pPicS[i]->MoveWindow(DlgStr[i].pointx,DlgStr[i].pointy,18,19) ;
	}
	fclose(fp);
	SetTimer(1,500,NULL) ;

	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CPictureShow::OnDeleteAll(WPARAM wParam, LPARAM lParam)
{
//	CString str = lpstrFile ;
	CString str = (char*)lParam ;
	for(int i=0;i<x;i++)
	{
		if(DlgStr[i].mapaddr == str)
		{
			if(x>0)
			{
				DlgStr[i].picnum = DlgStr[x-1].picnum;
				DlgStr[i].pointx = DlgStr[x-1].pointx ;
				DlgStr[i].pointy = DlgStr[x-1].pointy ;
				DlgStr[i].ipAddr = DlgStr[x-1].ipAddr ;
				DlgStr[i].channelNo = DlgStr[x-1].channelNo ;
				DlgStr[i].portNo = DlgStr[x-1].portNo ;
				memcpy(DlgStr[i].name,DlgStr[x-1].name,50) ;
				memcpy(DlgStr[i].mapaddr,DlgStr[x-1].mapaddr,200) ;
				DlgStr[x-1].picnum = NULL ;
				DlgStr[x-1].pointx = NULL ;
				DlgStr[x-1].pointy = NULL ;
				DlgStr[x-1].ipAddr = NULL ;
				DlgStr[x-1].channelNo =NULL ;
				DlgStr[x-1].portNo =NULL ;
				memset(DlgStr[x-1].name,0,50) ;
				memset(DlgStr[x-1].mapaddr,0,200) ;
				pPicS[x-1]->DestroyWindow() ;
				delete pPicS[x-1] ;
				pPicS[x-1] = NULL ;				
				x-- ;
				i-- ;
			}
		}
	}
}


BOOL CPictureShow::OnAlarm(ULONG ip,int channel,int type,int port,int style)
{
	for(int i=0;i<x;i++)
	{
		if (DlgStr[i].ipAddr == ip &&
			DlgStr[i].channelNo == channel &&
			DlgStr[i].picnum == type &&
			DlgStr[i].portNo == port)
		{
			strcpy(pPicS[i]->pPicString,strFile) ;
			switch(type)
			{
			case 1: switch(style){
				case msg_pc_sensor: pPicS[i]->bSensor = TRUE ;
					break ;
				case msg_pc_sensor1: pPicS[i]->bSensor = FALSE ;
					break ;
				case msg_pc_motion: pPicS[i]->bMotion = TRUE ;
					break ;
				case msg_pc_motion1: pPicS[i]->bMotion = FALSE ;
					break ;
				case msg_pc_vlost: pPicS[i]->bVlost = TRUE ;
					break ;
				case msg_pc_vlost1: pPicS[i]->bVlost = FALSE ;
					break ;
					}
				break ;
				//////////////////////////
			case 2: switch (style){
				case msg_nomal: pPicS[i]->bRecord = FALSE ;
					break ;
				case msg_record: pPicS[i]->bRecord = TRUE ;
					break ;
				case msg_motion: pPicS[i]->bMotion = TRUE ;
					GetParent()->SendMessage(WM_MY_ALARM,0,(DWORD)DlgStr[i].mapaddr) ;
					GetParent()->SendMessage(WM_MY_SHOW,0,(DWORD)DlgStr[i].mapaddr) ;
					break ;
				case msg_motion1:pPicS[i]->bMotion = FALSE ;
					break ;
				case msg_vlost: pPicS[i]->bVlost = TRUE ;
					GetParent()->SendMessage(WM_MY_ALARM,0,(DWORD)DlgStr[i].mapaddr) ;
					GetParent()->SendMessage(WM_MY_SHOW,0,(DWORD)DlgStr[i].mapaddr) ;
					break ;
				case msg_vlost1: pPicS[i]->bVlost = FALSE ;
					break ;
				}
				break ;
				///////////////////////////////////
			case 3: switch (style){
				case msg_sensor: pPicS[i]->bSensor = TRUE ;
					GetParent()->SendMessage(WM_MY_ALARM,0,(DWORD)DlgStr[i].mapaddr) ;
					GetParent()->SendMessage(WM_MY_SHOW,0,(DWORD)DlgStr[i].mapaddr) ;
					break ;
				case msg_sensor1: pPicS[i]->bSensor = FALSE ;
					break ;
					}
				break ;
			}
			return TRUE  ;			
		}		
	}
	return FALSE ;
}

void CPictureShow::OnAlarmSENSOR(WPARAM wParam, LPARAM lParam)
{
	ULONG * ipport = (ULONG *) wParam;
	ULONG ipaddr = ipport[0] ;
	USHORT port = ipport[1] ;
	DWORD m_word = lParam ;
	for (int i=0;i<16;i++)
	{
		if (m_word & (1<<i))
		{		
			OnAlarm(ipaddr,i+1,3,port,msg_sensor) ;
		}
		else
		{
			OnAlarm(ipaddr,i+1,3,port,msg_sensor1) ;
		}
	}
	if (m_word == 0 )
	{
		OnAlarm(ipaddr,0,1,port,msg_pc_sensor1) ;
	}
	else
	{
		OnAlarm(ipaddr,0,1,port,msg_pc_sensor) ;
	}
}

void CPictureShow::OnAlarmMOTION(WPARAM wParam, LPARAM lParam)
{
	ULONG * ipport = (ULONG *) wParam;
	ULONG ipaddr = ipport[0] ;
	USHORT port = ipport[1] ;
	DWORD m_word = lParam ;
	for (int i=0;i<16;i++)
	{
		if (m_word & (1<<i))
		{
			OnAlarm(ipaddr,i+1,2,port,msg_motion) ;
//			OnAlarm(ipaddr,32-i,1) ;
		}
		else
		{
			OnAlarm(ipaddr,i+1,2,port,msg_motion1) ;
		}
	}
	if (m_word == 0 )
	{
		OnAlarm(ipaddr,0,1,port,msg_pc_motion1) ;
	}
	else
	{
		OnAlarm(ipaddr,0,1,port,msg_pc_motion) ;
	}
}

void CPictureShow::OnAlarmVLOST(WPARAM wParam, LPARAM lParam)
{
    ULONG * ipport = (ULONG *) wParam;
	ULONG ipaddr = ipport[0] ;
	USHORT port = ipport[1] ;
	DWORD m_word = lParam ;
	for (int i=0;i<16;i++)
	{
		if (m_word & (1<<i))
		{
			OnAlarm(ipaddr,i+1,2,port,msg_vlost) ;
//			OnAlarm(ipaddr,32-i,1) ;
		}
		else
		{
			OnAlarm(ipaddr,i+1,2,port,msg_vlost1) ;
		}
	}
	if (m_word == 0 )
	{
		OnAlarm(ipaddr,0,1,port,msg_pc_vlost1) ;
	}
	else
	{
		OnAlarm(ipaddr,0,1,port,msg_pc_vlost) ;
	}
}

void CPictureShow::OnAlarmRECORD(WPARAM wParam, LPARAM lParam)
{
	ULONG * ipport = (ULONG *) wParam;
	ULONG ipaddr = ipport[0] ;
	USHORT port = ipport[1] ;
	DWORD m_word = lParam ;
	for (int i=0;i<16 ;i++)
	{
		if (m_word & (1<<i))
		{		
			OnAlarm(ipaddr,i+1,2,port,msg_record) ;
		}
		else
		{
			OnAlarm(ipaddr,i+1,2,port,msg_nomal) ;
		}
	}
}

void CPictureShow::OnTimer(UINT nIDEvent)
{
	 for (int i=0;i<x;i++)
	 {
		 if(!pPicS[i]) continue;
		 switch (pPicS[i]->type){
		 case 1:if(pPicS[i]->bMotion || pPicS[i]->bSensor || pPicS[i]->bVlost)
				{
					if (pPicS[i]->pPicString == addrstr1)
					{
						strcpy(pPicS[i]->pPicString,addrstr5) ;
						pPicS[i]->SendMessage(WM_PAINT,0,0) ;
					}
					else
					{
						strcpy(pPicS[i]->pPicString,addrstr1) ;
						pPicS[i]->SendMessage(WM_PAINT,0,0) ;
					}
				}
			 else
			 {
				 if(addrstr1 !=pPicS[i]->pPicString)
				 {
					 strcpy(pPicS[i]->pPicString,addrstr1) ;
					 pPicS[i]->SendMessage(WM_PAINT,0,0) ;
				 }
			 }
			 break ;
		 case 2:if(pPicS[i]->bRecord == FALSE &&
				   pPicS[i]->bMotion == FALSE &&
				   pPicS[i]->bVlost == FALSE)
				{
					if(addrstr2 !=pPicS[i]->pPicString)
					{
						strcpy(pPicS[i]->pPicString,addrstr2) ;
						pPicS[i]->SendMessage(WM_PAINT,0,0) ;
					}
				}
				else if(pPicS[i]->bRecord == TRUE &&
						pPicS[i]->bMotion == FALSE &&
						pPicS[i]->bVlost == FALSE)
				{
					if(addrstr4 !=pPicS[i]->pPicString)
					{
						strcpy(pPicS[i]->pPicString,addrstr4) ;
						pPicS[i]->SendMessage(WM_PAINT,0,0) ;
					}
				}
				else if(pPicS[i]->bRecord == FALSE &&
						pPicS[i]->bMotion == TRUE &&
						pPicS[i]->bVlost == FALSE)
				{
					if (pPicS[i]->pPicString == addrstr2){
						strcpy(pPicS[i]->pPicString,addrstr7) ;
						pPicS[i]->SendMessage(WM_PAINT,0,0) ;
					}
					else{
						strcpy(pPicS[i]->pPicString,addrstr2) ;
						pPicS[i]->SendMessage(WM_PAINT,0,0) ;
					}
				}
				else if (pPicS[i]->bRecord == TRUE &&
						 pPicS[i]->bMotion == TRUE &&
					     pPicS[i]->bVlost == FALSE)
				{
					if (pPicS[i]->pPicString == addrstr4){
						strcpy(pPicS[i]->pPicString,addrstr7) ;
						pPicS[i]->SendMessage(WM_PAINT,0,0) ;
					}
					else{
						strcpy(pPicS[i]->pPicString,addrstr4) ;
						pPicS[i]->SendMessage(WM_PAINT,0,0) ;
					}
				}
				else if (pPicS[i]->bRecord == FALSE &&
						 pPicS[i]->bMotion == FALSE &&
						 pPicS[i]->bVlost == TRUE)
				{
					if (pPicS[i]->pPicString == addrstr2){
						strcpy(pPicS[i]->pPicString,addrstr8) ;
						pPicS[i]->SendMessage(WM_PAINT,0,0) ;
					}
					else{
						strcpy(pPicS[i]->pPicString,addrstr2) ;
						pPicS[i]->SendMessage(WM_PAINT,0,0) ;
					}
				}
				else if (pPicS[i]->bRecord == TRUE &&
						 pPicS[i]->bMotion == FALSE &&
						 pPicS[i]->bVlost == TRUE)
				{
					if (pPicS[i]->pPicString == addrstr4){
						strcpy(pPicS[i]->pPicString,addrstr8) ;
						pPicS[i]->SendMessage(WM_PAINT,0,0) ;
					}
					else{
						strcpy(pPicS[i]->pPicString,addrstr4) ;
						pPicS[i]->SendMessage(WM_PAINT,0,0) ;
					}
				}
				else if (pPicS[i]->bMotion == TRUE &&
					     pPicS[i]->bVlost == TRUE)
				{
					if (pPicS[i]->pPicString == addrstr7){
						strcpy(pPicS[i]->pPicString,addrstr8) ;
						pPicS[i]->SendMessage(WM_PAINT,0,0) ;
					}
					else{
						strcpy(pPicS[i]->pPicString,addrstr7) ;
						pPicS[i]->SendMessage(WM_PAINT,0,0) ;
					}
				}
				break ;
		 case 3: if(pPicS[i]->bSensor)
				{
					if (pPicS[i]->pPicString == addrstr3)
					{
						strcpy(pPicS[i]->pPicString,addrstr6) ;
						pPicS[i]->SendMessage(WM_PAINT,0,0) ;
					}
					else
					{
						strcpy(pPicS[i]->pPicString,addrstr3) ;
						pPicS[i]->SendMessage(WM_PAINT,0,0) ;
					}
				}
			 else
			 {
				if(addrstr3 !=pPicS[i]->pPicString)
				{
					strcpy(pPicS[i]->pPicString,addrstr3) ;
					pPicS[i]->SendMessage(WM_PAINT,0,0) ;
				}
			 }
			 break ;
		 }
	 }
}

void CPictureShow::OnMove(WPARAM wParam, LPARAM lParam)
{
	movNo = int(wParam) ;
}

void CPictureShow::OnMouseMove(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
	if(movNo>=0 && movNo<300)	
	{
		if(pPicS[movNo]->bMove)
		{
			SetFocus();
			ClientToScreen(&point);
			CPoint pt(0, 0);
			::GetCursorPos(&pt);
			ScreenToClient (&pt);
			DlgStr[movNo].pointx = pt.x-8 ;
			DlgStr[movNo].pointy = pt.y-8 ;
			pPicS[movNo]->MoveWindow(pt.x-8,pt.y-8,19,19) ;
		}
	}
	CDialog::OnMouseMove(nFlags, point);
}

  

⌨️ 快捷键说明

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