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

📄 operatview.cpp

📁 远程视频监控系统最新程序代码
💻 CPP
📖 第 1 页 / 共 5 页
字号:

	CPen* oldpen ;
	CRect plate;
	CRect client;
	GetClientRect(&client);
	int yH = client.bottom,xW = client.right; 
	int x=xW/43,y=(yH-data_y0-key_y0)/37;

	int high=11*(yH-data_y0-key_y0)/37,wide=20*xW/43;
	oldpen = pDC->SelectObject(&blackPen2);
	pDC->SelectStockObject(LTGRAY_BRUSH);
	COLORREF bkColor=pDC->SetBkColor(RGB(190,190,190));

	for(int i=0;i<curPage;i++)
	{
		plate.SetRect(5+(i%2+1)*x+i%2*wide, data_y0+(i/2+1)*y+high*(i/2),
					   5+(i%2+1)*x+i%2*wide+wide, data_y0+(i/2+1)*y+high*(i/2)+high);
		Glob_Plate_Point[i].x=plate.left;
        Glob_Plate_Point[i].y=plate.bottom;
		pDC->Rectangle(&plate);
		if ((plate_disp.add[curTask*6+i+1]<0)||(plate_disp.add[curTask*6+i+1]>(MAX_ADNUM+2))) continue;
        if ((plate_disp.ch[curTask*6+i+1]<0)||(plate_disp.ch[curTask*6+i+1]>(MAX_CHNUM))) continue;
 
		CFont *oldFont=pDC->SelectObject(&m_LxlFont2);
		code_name_tab=code_name_tab1+plate_disp.add[curTask*6+i+1]*(MAX_CHNUM+1)+plate_disp.ch[curTask*6+i+1];
		sprintf(szbuf,"    %s",code_name_tab->psName);
		pDC->TextOut(plate.left+20,plate.bottom-30,szbuf);
		pDC->SelectObject(oldFont);
		oldFont=pDC->SelectObject(&m_TableFont);
		
		aps=aps1+plate_disp.add[curTask*6+i+1]*(MAX_CHNUM+1)+plate_disp.ch[curTask*6+i+1];
		pDC->TextOut(plate.right-50,plate.bottom-35,aps->sysUnit);	
		if (fabs(aps->sysBot)>=100)
		  sprintf(szbuf,"%6.0f",aps->sysBot);
		else
		  sprintf(szbuf,"%6.2f",aps->sysBot);	 
		pDC->TextOut(plate.left+2,plate.top+3,szbuf);
		if (fabs(aps->sysTop)>=100)
		   sprintf(szbuf,"%6.0f",aps->sysTop);
		else
           sprintf(szbuf,"%6.2f",aps->sysTop);
		pDC->TextOut(plate.right-60,plate.top+3,szbuf);	
	
		COLORREF preColor=pDC->SetTextColor(RGB(255,0,0));

//			preColor=pDC->SetTextColor(RGB(255,0,0));
		    float temp=aps->sysTop-aps->sysBot;
			if (temp-0<1e-5) temp=1;
			int m=(int)(aps->alrmLl-aps->sysBot);
	        m=(m*wide)/temp; 
			if (aps->alrmLl)
			   sprintf(szbuf,"%6.1f ",aps->alrmLl);
			else
				sprintf(szbuf,"%6.2f ",aps->alrmLl);
		    int Half_wide=wide/2;
			m=m%Half_wide;
			if (aps->sysBot>1000)
			{
              if (m<70) m=70;
			  pDC->TextOut(plate.left+m,plate.top+3,szbuf); 

			}
			else
			{ 
              if (m<60) m=60;
			  pDC->TextOut(plate.left+m,plate.top+3,szbuf); 
			}
			if (aps->alrmHl>=100)
			  sprintf(szbuf,"%6.1f ",aps->alrmHl);
			else
              sprintf(szbuf,"%6.2f ",aps->alrmHl);
		    m=(int)(aps->sysTop-aps->alrmHl);
	        m=(m*wide)/temp;  
			m=m%Half_wide;
			if (aps->sysTop>1000)
			{
			   if (m<140)  m=140;
               pDC->TextOut(plate.right-m,plate.top+3,szbuf);
			}
			else
			{  
			   if (m<120)  m=120;
               pDC->TextOut(plate.right-m,plate.top+3,szbuf); 
			}
            pDC->SelectObject(oldFont);
			pDC->SetTextColor(preColor);
			if(m_trackbar[i].GetSafeHwnd()==NULL){
				m_trackbar[i].Create(WS_CHILD | WS_VISIBLE | WS_BORDER |
					TBS_AUTOTICKS|TBS_ENABLESELRANGE | TBS_BOTTOM | TBS_HORZ,
					CRect(Glob_Plate_Point[i].x+wide/20,Glob_Plate_Point[i].y-12*high/15, Glob_Plate_Point[i].x+19*wide/20,
				          	Glob_Plate_Point[i].y-8*high/15), this, IDC_TRACKBAR);
			 
				if(((aps->sysTop-aps->sysBot)<=1.0))
				{
					if  ((aps->sysTop-aps->sysBot)<0.1)
					{ 
						m_trackbar[i].SetRange(0, (int)((aps->sysTop-aps->sysBot)*1000), TRUE);
					    m_trackbar[i].SetSelection((int)(aps->alrmLl-aps->sysBot)*1000,(int)((aps->alrmHl-aps->sysBot)*1000)); 
                    }
					else
					{
					  m_trackbar[i].SetRange(0, (int)((aps->sysTop-aps->sysBot)*100), TRUE);
					  m_trackbar[i].SetSelection((int)(aps->alrmLl-aps->sysBot)*100,(int)((aps->alrmHl-aps->sysBot)*100)); 
					}
				}
				else
				{
					if(((aps->sysTop-aps->sysBot)<10.0)&&((aps->sysTop-aps->sysBot)>1.0))
					{
						m_trackbar[i].SetRange(0, (int)((aps->sysTop-aps->sysBot)*10), TRUE);
					    m_trackbar[i].SetSelection((int)(aps->alrmLl-aps->sysBot)*10,(int)((aps->alrmHl-aps->sysBot)*10)); 
					}
					else
					{
						m_trackbar[i].SetRange(0, (int)(aps->sysTop-aps->sysBot), TRUE);
					    m_trackbar[i].SetSelection((int)(aps->alrmLl-aps->sysBot),(int)((aps->alrmHl-aps->sysBot))); 
					}
				}
			    
			}
	}
	curTask=nOldCurTask;
	pDC->SelectObject(oldpen);
	pDC->SetBkColor(bkColor);
}

void COperatView::Def_Draw_PlateDynamicData(CDC *pDC)
{
  	int pageNum = menuNums;
	char	szbuf[64];
    if(curTask == (pageNum-1)) return;
	int curPage;
	if(curTask == (pageNum-2))
	{
	    if (m_nCurSystem==1) curPage = (plate_disp.nGeneratorplateNum-1)%6+1;
		else  curPage = (plate_disp.nTurbineplateNum-1)%6+1;
	}
	else curPage = 6;
    short nOldCurTask=curTask; 
	if (m_nCurSystem==1) curTask=curTask+10;
    CBrush *brush;
	CBrush *oldbrush;
    COLORREF bkColor=pDC->SetBkColor(RGB(190,190,190));

	lampFlash++;    lampFlash%=2;
	short  freq;
	COLORREF preColor;
 	for(int i=0;i<curPage;i++)
	{     
		 if ((plate_disp.add[curTask*6+i+1]<0)||(plate_disp.add[curTask*6+i+1]>(MAX_ADNUM+2))) continue;
         if ((plate_disp.ch[curTask*6+i+1]<0)||(plate_disp.ch[curTask*6+i+1]>(MAX_CHNUM))) continue;  
	     aps=aps1+plate_disp.add[curTask*6+i+1]*(MAX_CHNUM+1)+plate_disp.ch[curTask*6+i+1];
		 CFont *pOldFont=pDC->SelectObject(&m_LxlFont2);

		 pDC->SelectStockObject(NULL_PEN); 
		 pDC->SelectStockObject(LTGRAY_BRUSH);
		 pDC->Ellipse(Glob_Plate_Point[i].x+2,Glob_Plate_Point[i].y-74,Glob_Plate_Point[i].x+20,Glob_Plate_Point[i].y-50);
         pDC->SelectStockObject(BLACK_PEN); 
  	     if(aps->st==0)  pDC->TextOut(Glob_Plate_Point[i].x+30,Glob_Plate_Point[i].y-62,"正常   ");
	     if(aps->st>0)  
		 {   
			 preColor=pDC->SetTextColor(RGB(255,0,0));
			 pDC->TextOut(Glob_Plate_Point[i].x+30,Glob_Plate_Point[i].y-62,"越限   ");
			 pDC->SetTextColor(preColor);
		 }
	     if(aps->st<0)  
		 {
			 preColor=pDC->SetTextColor(RGB(255,0,0));
			 pDC->TextOut(Glob_Plate_Point[i].x+30,Glob_Plate_Point[i].y-62,"系统错");
			 pDC->SetTextColor(preColor);
		  		
		    	if(lampFlash==0)
				{
				    oldbrush=pDC->SelectObject(m_Plate_Brush);
					pDC->Ellipse(Glob_Plate_Point[i].x+4,Glob_Plate_Point[i].y-72,Glob_Plate_Point[i].x+18,Glob_Plate_Point[i].y-57);
					pDC->SelectObject(oldbrush);
			 
				}
				else
				{
					brush=new CBrush(RGB(250,220,220));
					oldbrush=pDC->SelectObject(brush);
					pDC->Ellipse(Glob_Plate_Point[i].x+4,Glob_Plate_Point[i].y-72,Glob_Plate_Point[i].x+18,Glob_Plate_Point[i].y-57);
				    pDC->SelectObject(oldbrush);
					delete brush;
				}
		}
		 pDC->SelectObject(pOldFont);
			
			if(((aps->sysTop-aps->sysBot)<=1.0))
			{   
              if ((aps->sysTop-aps->sysBot)<0.1)
			  {
				freq=(int)((aps->sysTop-aps->sysBot)*1000)/10;
			  }
              else
			  {
				freq=(int)((aps->sysTop-aps->sysBot)*100)/10;
			  }
			}
				else{
					if(((aps->sysTop-aps->sysBot)<10.0)&&((aps->sysTop-aps->sysBot)>1.0))
						freq=(int)(aps->sysTop-aps->sysBot);
					else
						freq=(int)(aps->sysTop-aps->sysBot)/10;
				}

				m_trackbar[i].SetTicFreq(freq);
				//m_trackbar[i].SetTic(440);
				m_trackbar[i].SetLineSize(1);
				m_trackbar[i].SetPageSize(freq*2);


          COLORREF preColor = pDC->SetTextColor(RGB(0,0,255));		
	      pOldFont=pDC->SelectObject(&m_titfont);
		    if (strstr(m_sPointCode,aps->psCode)!=NULL)  //凝结器真空取反
			{
                 aps->anaVal=-aps->anaVal;
			}
			if (aps->Speed_Type==0)
			{
              sprintf(szbuf,"%7.1f",aps->anaVal);
			}
		    else
			{
			  if (fabs(aps->sysTop-aps->sysBot)>=1000) 
                 sprintf(szbuf,"%7.0f",aps->anaVal);
		      else  if (fabs(aps->sysTop-aps->sysBot)>=100) 
                 sprintf(szbuf,"%7.1f",aps->anaVal);
		      else if (fabs(aps->sysTop-aps->sysBot)>=1.0) 
                 sprintf(szbuf,"%7.2f",aps->anaVal);
		      else 
	             sprintf(szbuf,"%7.3f",aps->anaVal);
			}
			strcat(szbuf,"  ");
			if (strstr(m_sPointCode,aps->psCode)!=NULL)  //凝结器真空取反恢复
			{
                 aps->anaVal=-aps->anaVal;
			}
			if (aps->st>0)
			{
              COLORREF preTextColor=pDC->SetTextColor(RGB(255,0,0));
              pDC->TextOut(Glob_Plate_Point[i].x+120,Glob_Plate_Point[i].y-70,szbuf);
			  pDC->SetTextColor(preTextColor);
			}
			else if (aps->st<0)
			{
              strcpy(szbuf,"****  ");
              pDC->TextOut(Glob_Plate_Point[i].x+140,Glob_Plate_Point[i].y-70,szbuf);
			}
			else
			{
			  pDC->TextOut(Glob_Plate_Point[i].x+140,Glob_Plate_Point[i].y-70,szbuf);
			}
		    if((aps->anaVal>=aps->sysBot)&&(aps->anaVal<=aps->sysTop))
			{
			   if(((aps->sysTop-aps->sysBot)<=1.0))
			   {
			    	m_trackbar[i].SetPos((int)((aps->anaVal-aps->sysBot)*100));
			   }
			   else
			   {
					if(((aps->sysTop-aps->sysBot)<10.0)&&((aps->sysTop-aps->sysBot)>1.0))
						m_trackbar[i].SetPos((int)((aps->anaVal-aps->sysBot)*10));
					else
						m_trackbar[i].SetPos((int)(aps->anaVal-aps->sysBot));
			   }
			}
		pDC->SelectObject(pOldFont);
		pDC->SetTextColor(preColor);				
	}
  pDC->SetBkColor(bkColor);
  curTask=nOldCurTask;
}

void COperatView::Def_Draw_SwitchStaticData(CDC *pDC)
{
    int pageNum = menuNums;
    if(curTask == (pageNum-1)) return;
	int curPage,raws;
	if(curTask == (pageNum-2))
	{
	    curPage = (Glob_Switch_Count-1)%MAX_SWITCHPAGENUM+1;
	}
	else 
	{
		curPage = MAX_SWITCHPAGENUM;
	}
 	raws=3;
	CRect client;
	GetClientRect(&client);
	int xW = client.right,yH = client.bottom; 

	 
	int height = (yH-data_y0-key_y0-10)/(raws+1);
	int disc = height/raws;
	int xx,yy,mm;
	int wide = (xW-20)/(MAX_SWITCHPAGENUM/3);
    CFont *oldFont;
	oldFont=pDC->SelectObject(&m_LxlFont);
	for(int i=0;i<curPage;i++)
	{   
	    no_add_tab=no_add_tab1+MAX_TOTAL+i+1+curTask*MAX_SWITCHPAGENUM;	
		if (no_add_tab->add==0) continue;
		xx = i%(MAX_SWITCHPAGENUM/3);	yy=i/(MAX_SWITCHPAGENUM/3);
		swRect[i].SetRect(10+xx*wide,10+data_y0+yy*height+yy*disc,10+xx*wide+wide-20,10+data_y0+yy*height+height+yy*disc);
		pDC->Rectangle(&swRect[i]);
		mm = (swRect[i].right-swRect[i].left)/2; 
		code_name_tab=code_name_tab1+no_add_tab->add*(MAX_CHNUM+1)+no_add_tab->ch;
		pDC->TextOut(swRect[i].left+10,swRect[i].bottom-35,code_name_tab->psName);
	}
    pDC->SelectObject(oldFont); 
}

void COperatView::Def_Draw_SwitchDynamicData(CDC *pDC)
{
    CDC *pMemDC;
	CBitmap *oldBitmap;
	CClientDC dc(this);
    int pageNum = menuNums;
    if(curTask == (pageNum-1)) return;
	int curPage,raws;
	if(curTask == (pageNum-2))
	{
	    curPage = (Glob_Switch_Count-1)%MAX_SWITCHPAGENUM+1;	 
	}
	else 
	{
		curPage = MAX_SWITCHPAGENUM;
	
	}
 	raws=3;
	CRect  client;

	int mm;	 
    CFont *oldFont=pDC->SelectObject(&m_LxlFont);	
    APS *aps; 

	for(int i=0;i<curPage;i++)
	{   
		no_add_tab=no_add_tab1+MAX_TOTAL+i+1+curTask*MAX_SWITCHPAGENUM;	
		if((no_add_tab->add<1)||(no_add_tab->add>(MAX_ADNUM+2))) continue;
        if((no_add_tab->ch<1)||(no_add_tab->ch>MAX_CHNUM)) continue;  
		aps = aps1+ no_add_tab->add*(MAX_CHNUM+1)+no_add_tab->ch;
		mm = (swRect[i].right-swRect[i].left)/2;
		if(aps->swVal==aps->Compensate_wayIndex)
		{		
			 
			pMemDC = new CDC;
			pMemDC->CreateCompatibleDC(&dc);
			oldBitmap=pMemDC->SelectObject(&swonBit);
			dc.BitBlt(swRect[i].left+mm-10,swRect[i].top+10,swRect[i].left+mm+40,swRect[i].top+mm+40,pMemDC,0,0,SRCCOPY); 
			pMemDC->SelectObject(oldBitmap);
			if (aps->swVal==1)
			{
			   pDC->TextOut(swRect[i].left+mm+50,swRect[i].top+15,swOn[no_add_tab->psNo]);
			}
			else
			{	
				pDC->TextOut(swRect[i].left+mm+50,swRect[i].top+15,swOff[no_add_tab->psNo]);
			}
         	delete pMemDC;	
		}
		else{
			pMemDC = new CDC;
			pMemDC->CreateCompatibleDC(&dc);
			oldBitmap=pMemDC->SelectObject(&swoffBit);
			dc.BitBlt(swRect[i].left+mm-10,swRect[i].top+10,swRect[i].left+mm+40,swRect[i].top+mm+40,pMemDC,0,0,SRCCOPY);
			pMemDC->SelectObject(oldBitmap);
			if (aps->swVal==1)
			{
			   pDC->TextOut(swRect[i].left+mm+50,swRect[i].top+15,swOn[no_add_tab->psNo]);
			}
			else
			{	
				pDC->TextOut(swRect[i].left+mm+50,swRect[i].top+15,swOff[no_add_tab->psNo]);
			}
			delete pMemDC;
		}	
	
	} 		
	pDC->SelectObject(oldFont);
}

void COperatView::Def_DrawStaticFlowChart(CDC *pDC, int nIndex)
{
	CDC *pMemDC;
	CBitmap *oldBitmap;
	CClientDC dc(this);
	CRect client;
	GetClientRect(&client);
   	pMemDC = new CDC;
	pMemDC->CreateCompatibleDC(&dc);
	oldBitmap=pMemDC->SelectObject(&m_FlowChartBit[nIndex]);
	dc.BitBlt(0,data_y0,client.right,client.bottom-key_y0,pMemDC,0,0,SRCCOPY);
	pMemDC->SelectObject(oldBitmap);
	delete pMemDC;
}

void COperatView::Def_DrawDynamicFlowChart(CDC *pDC, int nIndex)
{ 
  int i;
  char szbuf[20];
//  COLORREF oldBkColor=pDC->SetBkColor(TRANSPARENT);
  COLORREF preColor,preBkColor;
  CFont *ol

⌨️ 快捷键说明

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