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