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

📄 curve.cpp

📁 波峰焊后台控制软件-中文版
💻 CPP
📖 第 1 页 / 共 2 页
字号:
							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 + -