📄 curve.cpp
字号:
pOldPen=dc.SelectObject(pPen8);//--
dc.MoveTo(set_curve_point.x, rect.top+26);
dc.LineTo(set_curve_point.x, rect.bottom-25);
dc.SelectObject(pOldPen); //++
old_set_curve_point=set_curve_point;
delete pPen8;
dc.SetROP2 (OldMode);
/* OldMode = dc.SetROP2 (R2_XORPEN);
pPen8=new CPen(PS_SOLID, 1, RGB(255, 0, 0));
pOldPen=dc.SelectObject(pPen8);//--
dc.MoveTo(old_set_curve_point.x, rect.top+26);
dc.LineTo(old_set_curve_point.x, rect.bottom-25);
dc.SelectObject(pOldPen); //++
delete pPen8;
dc.SetROP2 (OldMode);*/
}
theApp.TDisplayfg=0xff;
/* if(set_curve_flag!=0)
{
if(set_num>=3)
{
pOldPen=dc.SelectObject(pPen4);//--黑
dc.MoveTo(spoint[0].x, rect.top+26);
dc.LineTo(spoint[0].x, rect.bottom-25);
dc.MoveTo(spoint[1].x, rect.top+26);
dc.LineTo(spoint[1].x, rect.bottom-25);
dc.SelectObject(pOldPen);//++
}
}else set_num=0;
*/
// theApp.init_curve_flag=0xff;
}
lastx=newx;
}//垂直
if(theApp.lTESTfg!=0)
{//水平
GetCursorPos(&Cursor);
newy=Cursor.y;
if(newy<rect.top+80) newy=rect.top+80;
if(newy>rect.bottom-5) newy=rect.bottom-5;
if(newy!=lasty)
{
CRect m_rect;
m_rect.left =rect.left+737;
m_rect.right =rect.left+800;
m_rect.top =rect.top+20;
m_rect.bottom =rect.bottom-40;
dc.FillRect(m_rect, pbrush);
dy=(double)newy;
dx=0.78125*(600-dy-141);//0.78125=50/64;
// 250---116---139
// 200---183---203
// 100---316---331
// 0---449----459
string.Format(_T("%3.1f"),dx);
if(dx<1000)
{
string=_T("0")+string;
if(dx<100)
{
string=_T("0")+string;
if (dx<10) string=_T("0")+string;
}
}
string=string+_T("C");
i=(int)dx;
if(i>255) i=255;
if(i>200)
{
dc.SetTextColor(RGB(0+i, 255-i, 255-i));
}else
{
dc.SetTextColor(RGB(0+i, 255, 255-i));
}
ExtTextOut(dc,rect.left+737,int(rect.bottom-50-dx*1.33),ETO_OPAQUE,&mm_rect,string, string.GetLength(),NULL);
if(set_curve_flag!=0)
{
OldMode = dc.SetROP2 (R2_XORPEN);
pPen8=new CPen(PS_SOLID, 1, RGB(255, 0, 0));
pOldPen=dc.SelectObject(pPen8);//--
dc.MoveTo(set_curve_point.x, rect.top+26);
dc.LineTo(set_curve_point.x, rect.bottom-25);
dc.SelectObject(pOldPen); //++
old_set_curve_point=set_curve_point;
delete pPen8;
dc.SetROP2 (OldMode);
}
pOldPen=dc.SelectObject(pPen4);//--
dc.MoveTo(rect.left+30,lasty-50);
dc.LineTo(rect.right-56,lasty-50);
dc.SelectObject(pOldPen);//++
pOldPen=dc.SelectObject(pPen1);//--
dc.MoveTo(rect.left+30, newy-50);
dc.LineTo(rect.right-56, newy-50);
dc.SelectObject(pOldPen);//++
if(set_curve_flag!=0)
{
OldMode = dc.SetROP2 (R2_XORPEN);
pPen8=new CPen(PS_SOLID, 1, RGB(255, 0, 0));
pOldPen=dc.SelectObject(pPen8);//--
dc.MoveTo(set_curve_point.x, rect.top+26);
dc.LineTo(set_curve_point.x, rect.bottom-25);
dc.SelectObject(pOldPen); //++
old_set_curve_point=set_curve_point;
delete pPen8;
dc.SetROP2 (OldMode);
}
pOldPen = dc.SelectObject(pGPen);//--
dc.MoveTo(rect.left+30, rect.bottom-25);
dc.LineTo(rect.right-10, rect.bottom-25);
dc.MoveTo(rect.left+30, rect.top+5);
dc.LineTo(rect.left+30, rect.bottom-25);
dc.MoveTo(rect.left+30, rect.top+5);
dc.LineTo(rect.left+27, rect.top+10);
dc.MoveTo(rect.left+30, rect.top+5);
dc.LineTo(rect.left+33, rect.top+10);
dc.MoveTo(rect.right-15, rect.bottom-28);
dc.LineTo(rect.right-10, rect.bottom-25);
dc.MoveTo(rect.right-15, rect.bottom-22);
dc.LineTo(rect.right-10, rect.bottom-25);
for (i=1; i<90; i++)
{
dc.MoveTo(rect.left+30+int(i*10*x), rect.bottom-25);
dc.LineTo(rect.left+30+int(i*10*x), rect.bottom-32);
}
for (i=1; i<60; i++)
{
dc.MoveTo(rect.left+30, rect.top+25+int(i*2*y));
dc.LineTo(rect.left+35, rect.top+25+int(i*2*y));
}
dc.SelectObject(pOldPen);//++
pOldPen = dc.SelectObject(pgrayPen);//--
for (i=1; i<19; i++)
{
if((i%2)==0)
{
dx=50.0*x;
dx=dx*(double)i;
if(i>=10)dx--;
dc.MoveTo(rect.left+30+(int)(dx), rect.top+25);
dc.LineTo(rect.left+30+(int)(dx), rect.bottom-25);
}
}
for (i=0; i<6; i++)
{
dc.MoveTo(rect.left+30, rect.top+25+int(i*20*y));
dc.LineTo(rect.right-56, rect.top+25+int(i*20*y));
}
dc.SelectObject(pOldPen);//++
theApp.TDisplayfg=0xff;
}
lasty=newy;
}//水平
dc.SelectObject(PtrOldFont);//++++++++++++
delete lf;
delete pFont;
delete pPen1;
delete pPen2;
delete pPen3;
delete pPen4;
delete pPen5;
delete pPen6;
delete pPen7;
delete pGPen;
delete pgrayPen;
delete pbrush;
if(init_flash==0)
{
SetTimer (201,200,NULL);
}
init_flash=0xff;
flash_face=0;
// Do not call CStatic::OnPaint() for painting messages
}
void CCurve::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
int i,j,m,n;
double dx,dxx[20],max_dx,dy,ldx,dt;
for (i=0;i<3;i++)
{//最高温度
dt=0;
for(j=0;j<600;j++)
{
dx=theApp.TEMT[i][j];
if(dx>dt) dt=dx;
}
theApp.MaxTemper[i]=dt*10;
}
if(theApp.vTESTfg!=0)
{
for (i=0;i<3;i++)
{// 曲线温度
if(Cursor.x<30)Cursor.x=30;
if(Cursor.x>744)Cursor.x=744;
j=(int)((double)Cursor.x-30)*60.0/78.0;
theApp.Curve_Temper[i]=theApp.TEMT[i][j]*10.0;
};
max_dx=0;
for(i=0;i<3;i++)
{//垂直温差
if(theApp.test_flag[i]!=0)
{
for(j=0;j<3;j++)
{
if(theApp.test_flag[j]!=0)
{
dy=theApp.Curve_Temper[i]-theApp.Curve_Temper[j];
if(dy<0) dy=-dy;
if(max_dx<dy)max_dx=dy;
}
}
}
}
theApp.VTdx=max_dx;
if((set_curve_flag!=0))
{//加热时间
dt=old_set_curve_point.x-Cursor.x;
theApp.AHotTime=dt *30.0/78.0*10.0;
}
if(set_curve_flag!=0)
{//曲线斜率
for (i=0;i<3;i++)
{ //曲线斜率
if(Cursor.x<30) Cursor.x=30;
if(Cursor.x>744) Cursor.x=744;
n=(int)((double) Cursor.x-30)*60.0/78.0;
m=(int)((double) old_set_curve_point.x-30)*60.0/78.0;
dx=theApp.TEMT[i][n];
dy=theApp.TEMT[i][m];
dt=dy-dx;
// if(tcurvespeed!=0)
// {
// dy=(m-n)*(10/tcurvespeed)*60;
// dx=dt/dy;
// }else dx=0;
// dx=dx*60;
theApp.Curve_Scale[i]=dt*120.0/((double)(m-n))*10.0;
// string.Format("%3.1f",dx);
// m_temperplay.SetTextMatrix(3,i+1,string);
//水平温差
theApp.lTdx[i]=dt*10;
// string.Format("%3.1f",-dt);
// m_temperplay2.SetTextMatrix(2,i+1,string);
};//for
}else
{//曲线斜率
for (i=0;i<3;i++)
{ //曲线斜率
if(Cursor.x<30) Cursor.x=30;
if(Cursor.x>744) Cursor.x=744;
j=(int)((double) Cursor.x-30)*60.0/78.0;
dx=theApp.TEMT[i][j];
dy=theApp.TEMT[i][j+1];
dt=dy-dx;
theApp.Curve_Scale[i]=dt*120.0*10.0;
// if(tcurvespeed!=0)
// {
// dy=(10/tcurvespeed)*60;
// dx=dt/dy;
// }else dx=0;
/// dx=dx*60;
// string.Format("%3.1f",dx);
// m_temperplay.SetTextMatrix(3,i+1,string);
//水平温差
dt=theApp.TEMT[i][j]-theApp.TEMT[i][0];
theApp.lTdx[i]=dt*10;
// string.Format("%3.1f",dt);
// m_temperplay2.SetTextMatrix(2,i+1,string);
};//for
}
}
flash_face=0xaa;
Invalidate(true);
ttt++;
if(ttt>=2)
{
if(keycount>0) keycount=keycount-1;
ttt=0;
}
CStatic::OnTimer(nIDEvent);
}
void CCurve::OnDestroy()
{
CStatic::OnDestroy();
// TODO: Add your message handler code here
KillTimer(201);
}
void CCurve::OnLButtonDblClk(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
if(theApp.vTESTfg!=0)
{
if(set_curve_flag==0)
{
set_curve_flag=0xff;
}else
{
}
set_num++;
init_flash=0;
}
GetCursorPos(&set_curve_point);
if(set_num>=3)
{
spoint[0]=spoint[1];
spoint[1]=spoint[2];
spoint[2]=set_curve_point;
set_num=3;
}else
{
switch(set_num)
{
case 0x00:spoint[0]=set_curve_point;
break;
case 0x01:spoint[1]=set_curve_point;
break;
case 0x02:spoint[2]=set_curve_point;
break;
}
}
CStatic::OnLButtonDblClk(nFlags, point);
}
void CCurve::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
keycount+=2;
if(keycount>=4)
{
if(theApp.vTESTfg!=0)
{
if(set_curve_flag==0) set_curve_flag=0xff;
else
{
// set_curve_flag=0;
}
set_num++;
init_flash=0;
}
GetCursorPos(&set_curve_point);
if(set_num>=3)
{
spoint[0]=spoint[1];
spoint[1]=spoint[2];
spoint[2]=set_curve_point;
set_num=3;
}else
{
switch(set_num)
{
case 0x00:spoint[0]=set_curve_point;
break;
case 0x01:spoint[1]=set_curve_point;
break;
case 0x02:spoint[2]=set_curve_point;
break;
}
}
}
CStatic::OnLButtonDown(nFlags, point);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -