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

📄 start.cpp

📁 一个LED楼宇亮化同步控制源码
💻 CPP
📖 第 1 页 / 共 5 页
字号:
				}
				break;
			case 30://圆形用线
				{			
					CRect rec(p->m_staPointx[0],p->m_staPointy[0],p->m_iWidth[0]+p->m_staPointx[0]+1,p->m_iHigh[0]+p->m_staPointy[0]+1);
					FillRect(dc,&rec,p->m_brush);
					p->CirculRunLine(0, index);
				}
				break;
			case 31://圆形多彩象素
				{			
					CRect rec(p->m_staPointx[0],p->m_staPointy[0],p->m_iWidth[0]+p->m_staPointx[0]+1,p->m_iHigh[0]+p->m_staPointy[0]+1);
					FillRect(dc,&rec,p->m_brush);
					p->CirculRunDotColor(0, index);
				}
				break;
			case 32://圆形多彩用线
				{			
					CRect rec(p->m_staPointx[0],p->m_staPointy[0],p->m_iWidth[0]+p->m_staPointx[0]+1,p->m_iHigh[0]+p->m_staPointy[0]+1);
					FillRect(dc,&rec,p->m_brush);
					p->CirculRunLineColor(0, index);
				}
				break;


			case 33://交替变幻
				{			
					CRect rec(p->m_staPointx[0],p->m_staPointy[0],p->m_iWidth[0]+p->m_staPointx[0]+1,p->m_iHigh[0]+p->m_staPointy[0]+1);
					FillRect(dc,&rec,p->m_brush);
					p->AlternateRun(0, index);
				}
				break;

			case 34:
				{
					CRect rec(p->m_staPointx[0],p->m_staPointy[0],p->m_iWidth[0]+p->m_staPointx[0]+1,p->m_iHigh[0]+p->m_staPointy[0]+1);
					FillRect(dc,&rec,p->m_brush);
					p->RollRun(0, index);
				}
				break;

			case 35:
				{
					CRect rec(p->m_staPointx[0],p->m_staPointy[0],p->m_iWidth[0]+p->m_staPointx[0]+1,p->m_iHigh[0]+p->m_staPointy[0]+1);
					FillRect(dc,&rec,p->m_brush);
					p->RunDot(0, index);
				}
				break;

			case 36:
				{
					CRect rec(p->m_staPointx[0],p->m_staPointy[0],p->m_iWidth[0]+p->m_staPointx[0]+1,p->m_iHigh[0]+p->m_staPointy[0]+1);
					FillRect(dc,&rec,p->m_brush);
					p->RunLine(0, index);
				}
				break;

			case 37://单色变化
				{
					CRect rec(p->m_staPointx[0],p->m_staPointy[0],p->m_iWidth[0]+p->m_staPointx[0]+1,p->m_iHigh[0]+p->m_staPointy[0]+1);
					FillRect(dc,&rec,p->m_brush);
					p->SingleColorRun(0, index);
				}
				break;


			default:
				break;
			}
		}
		CRect rec(p->m_staPointx[0],p->m_staPointy[0],p->m_iWidth[0]+p->m_staPointx[0]+1,p->m_iHigh[0]+p->m_staPointy[0]+1);
	    p->InvalidateRect(&rec,true);
		index=0;
		Sleep(100);
	}
	delete(p);
	return 1;
	
}

 void Cstart::StartPro()
//启动函数
{
	CClientDC dc(this);
	CRect rec(0,0,m_winW,m_winH);
    FillRect(dc,&rec,m_brush);
	Invalidate();
  //线程一
	if(true==sig[0]&& 1==m_actThread[0])
	{
	  m_pThread1=AfxBeginThread(ThreadProc,this);
	  sig[0]=false;
    } 

	////线程二
	if(true==sig[1]&&1==m_actThread[1])
	{
	  m_pThread2=AfxBeginThread(ThreadProc1,this);
	  sig[1]=false;
    }

	//线程三
	if(true==sig[2]&&1==m_actThread[2])
	{
	  m_pThread3=AfxBeginThread(ThreadProc2,this);
	  sig[2]=false;
    }

}

BOOL Cstart::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	temp=10;
	sig[0]=true;
	sig[1]=true;
    sig[2]=true;
	m_sevTemp=0;

    m_brush.CreateSolidBrush(RGB(0,0,0));
	pen[0].CreatePen(PS_SOLID,1,RGB(255,0,0));
	pen[1].CreatePen(PS_SOLID,1,RGB(255,255,0));
	pen[2].CreatePen(PS_SOLID,1,RGB(0,0,255));
	pen[3].CreatePen(PS_SOLID,1,RGB(0,255,0));
	pen[4].CreatePen(PS_SOLID,1,RGB(128,0,0));
	pen[5].CreatePen(PS_SOLID,1,RGB(192,192,192));
	pen[6].CreatePen(PS_SOLID,1,RGB(128,128,0));

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

void Cstart::OnCancelMode() 
{
	CDialog::OnCancelMode();
	
	// TODO: Add your message handler code here
	
}

void Cstart::RectangleTopToBotttom(int index, int order)//矩形变幻从上到下
{
	CClientDC dc1(this);
	CClientDC dc2(this);

	CPen pen, penBlack;

	pen.CreatePen(PS_SOLID, 1, m_rgbColor[index][order].Color());
	penBlack.CreatePen(PS_SOLID, 1, RGB(0, 0, 0));

	dc1.SelectObject(pen);
	dc2.SelectObject(penBlack);

	int X = 0, Y = 0, nHigh = 0, nWndX = 0, nWndY = 0;
	X = m_staPointx[index];
	Y = m_staPointy[index];

	nHigh = m_iHigh[index];

	nWndX = m_staPointx[index] + m_iWidth[index];
	nWndY = m_staPointy[index] + m_iHigh[index];

	//一个矩形从上到下
	for (Y; Y <= nWndY; Y++)
	{
		dc1.MoveTo(X, Y);
		dc1.LineTo(nWndX, Y);
		Sleep(5);
	}
	Sleep(20);

	//从两头同时填充就=矩形用黑的笔
	Y = m_staPointy[index];
	for (Y; Y <= nWndY; Y++)
	{
		dc2.MoveTo(X, Y);
		dc2.LineTo(nWndX, Y);
		dc2.MoveTo(X, nWndY);
		dc2.LineTo(nWndX, nWndY);
		nWndY = nWndY - 1;
		Sleep(5);
	}
	Sleep(20);

	//从中间从两边填充矩形用选择颜色
	Y = m_staPointy[index] + m_iHigh[index] / 2;
	nWndY = m_staPointy[index] + m_iHigh[index] / 2;
	for (int n = 0; n <= m_iHigh[index] / 2; n++)
	{
		dc1.MoveTo(X, Y);
		dc1.LineTo(nWndX, Y);
		dc1.MoveTo(X, nWndY);
		dc1.LineTo(nWndX, nWndY);
		nWndY = nWndY + 1;
		Y = Y -1;
		Sleep(5);
	}
	Sleep(20);
	
	//百叶变幻1从上到下 分四块,用黑笔
	X = m_staPointx[index];
	Y = m_staPointy[index];
	nWndX = m_staPointx[index] + m_iWidth[index];
	for ( n=0; n <=nHigh/4; n++)
	{
		dc2.MoveTo(X, Y);//第一条线
		dc2.LineTo(nWndX, Y);

		dc2.MoveTo(X, Y + nHigh/4);//第二条线
		dc2.LineTo(nWndX, Y + nHigh/4);

		dc2.MoveTo(X, Y + nHigh/2);//第三天线
		dc2.LineTo(nWndX , Y+ nHigh/2);

		dc2.MoveTo(X, Y+ nHigh*3/4);//第四条线
		dc2.LineTo(nWndX, Y + nHigh*3/4);
		Y = Y + 1;
		Sleep(20);	
	}
	Sleep(20);

	//百叶变幻2,从上到下分四块 用颜色笔
	X = m_staPointx[index];
	Y = m_staPointy[index];
	nWndX = m_staPointx[index] + m_iWidth[index];
	for ( n=0; n <=nHigh/4; n++)
	{
		dc1.MoveTo(X, Y);//第一条线
		dc1.LineTo(nWndX, Y);

		dc1.MoveTo(X, Y + nHigh/4);//第二条线
		dc1.LineTo(nWndX, Y + nHigh/4);

		dc1.MoveTo(X, Y + nHigh/2);//第三天线
		dc1.LineTo(nWndX , Y+ nHigh/2);

		dc1.MoveTo(X, Y+ nHigh*3/4);//第四条线
		dc1.LineTo(nWndX, Y + nHigh*3/4);
		Y = Y + 1;
		Sleep(20);	
	}
	Sleep(20);

	//百叶变幻3从上到下 分四块,用黑笔
	X = m_staPointx[index];
	Y = m_staPointy[index];
	nWndX = m_staPointx[index] + m_iWidth[index];
	for ( n=0; n <=nHigh/4; n++)
	{
		dc2.MoveTo(X, Y);//第一条线
		dc2.LineTo(nWndX, Y);

		dc2.MoveTo(X, Y + nHigh/4);//第二条线
		dc2.LineTo(nWndX, Y + nHigh/4);

		dc2.MoveTo(X, Y + nHigh/2);//第三天线
		dc2.LineTo(nWndX , Y+ nHigh/2);

		dc2.MoveTo(X, Y+ nHigh*3/4);//第四条线
		dc2.LineTo(nWndX, Y + nHigh*3/4);
		Y = Y + 1;
		Sleep(20);	
	}
	Sleep(20);

	//百叶变幻4,从下到上分四块 用颜色笔
	nWndY = m_staPointy[index] + m_iHigh[index];
	for (n = 0; n <=nHigh/4; n++)
	{
		dc1.MoveTo(X,  nWndY);
		dc1.LineTo(nWndX, nWndY);
		
		dc1.MoveTo(X, nWndY - nHigh/4);
		dc1.LineTo(nWndX, nWndY - nHigh/4);

		dc1.MoveTo(X, nWndY - nHigh/2);
		dc1.LineTo(nWndX, nWndY - nHigh/2);

		dc1.MoveTo(X, nWndY - 3*nHigh/4);
		dc1.LineTo(nWndX, nWndY - 3*nHigh/4);
		nWndY = nWndY - 1;
		Sleep(20);
	}
	Sleep(20);

	//擦除整个区域,用黑笔
	Y = m_staPointy[index];	
	nWndY = m_staPointy[index] + m_iHigh[index];
	for (nWndY; Y <= nWndY; nWndY--)
	{
		dc2.MoveTo(X, nWndY);
		dc2.LineTo(nWndX, nWndY);
		Sleep(1);
	}
	Sleep(10);

	//从上到下在宽右边1/4区域 用颜色笔画矩形
	X = m_staPointx[index];
	Y = m_staPointy[index];
	nWndX = m_staPointx[index] + m_iWidth[index]/4;
	nWndY = m_staPointy[index] + m_iHigh[index];
	for (Y; Y <= nWndY; Y= Y+2)
	{		
		dc1.MoveTo(X, Y);
		dc1.LineTo(nWndX, Y);
	}
	Sleep(1000);

	//从上到下在宽右边1/2区域 用颜色笔画矩形
	X = m_staPointx[index] + m_iWidth[index]/4;
	Y = m_staPointy[index];
	nWndX = m_staPointx[index] + m_iWidth[index]/2;
	nWndY = m_staPointy[index] + m_iHigh[index];
	for (nWndY; Y <= nWndY; nWndY=nWndY-2)
	{		
		dc1.MoveTo(X, nWndY);
		dc1.LineTo(nWndX, nWndY);
	}
	Sleep(1000);

	//从上到下在块右边3/4区域 用颜色画矩形	
	X = m_staPointx[index] + m_iWidth[index]/2;
	Y = m_staPointy[index];
	nWndX = m_staPointx[index] + 3*m_iWidth[index]/4;
	nWndY = m_staPointy[index] + m_iHigh[index];
	for (Y; Y <= nWndY; Y=Y+2)
	{		
		dc1.MoveTo(X, Y);
		dc1.LineTo(nWndX, Y);
	}
	Sleep(1000);

	//从上到下在块右边hign区域 用颜色笔画矩形
	X = m_staPointx[index] + 3*m_iWidth[index]/4;
	Y = m_staPointy[index];
	nWndX = m_staPointx[index] + m_iWidth[index];
	nWndY = m_staPointy[index] + m_iHigh[index];
	for (nWndY; Y <= nWndY; nWndY=nWndY-2)
	{		
		dc1.MoveTo(X, nWndY);
		dc1.LineTo(nWndX, nWndY);
	}
	Sleep(1000);

	//从上到下在块左边1/4区域, 用黑笔画矩形
	X = m_staPointx[index] + 3*m_iWidth[index]/4;
	Y = m_staPointy[index];
	nWndX = m_staPointx[index] + m_iWidth[index];
	nWndY = m_staPointy[index] + m_iHigh[index];
	for (Y; Y <= nWndY; Y++)
	{		
		dc2.MoveTo(X, Y);
		dc2.LineTo(nWndX, Y);
	}
	Sleep(1000);	
	
	//从上到下在块1/2区域 用黑笔画矩形
	X = m_staPointx[index] + m_iWidth[index]/2;
	Y = m_staPointy[index];
	nWndX = m_staPointx[index] + 3*m_iWidth[index]/4;
	nWndY = m_staPointy[index] + m_iHigh[index];
	for (nWndY; Y <= nWndY; nWndY--)
	{		
		dc2.MoveTo(X, nWndY);
		dc2.LineTo(nWndX, nWndY);
//		Sleep(1);
	}
	Sleep(1000);

	//从上到下在块3/4区域 用黑笔画矩形
	X = m_staPointx[index] + m_iWidth[index]/4;
	Y = m_staPointy[index];
	nWndX = m_staPointx[index] + m_iWidth[index]/2;
	nWndY = m_staPointy[index] + m_iHigh[index];
	for (Y; Y <= nWndY; Y++)
	{		
		dc2.MoveTo(X, Y);
		dc2.LineTo(nWndX, Y);
	}
	Sleep(1000);

	//从上到下在块左画high区域 用黑笔画矩形
	X = m_staPointx[index] ;
	Y = m_staPointy[index];
	nWndX = m_staPointx[index] + m_iWidth[index]/4;
	nWndY = m_staPointy[index] + m_iHigh[index];
	for (nWndY; Y <= nWndY; nWndY--)
	{		
		dc2.MoveTo(X, nWndY);
		dc2.LineTo(nWndX, nWndY);
	}

	DeleteObject(pen);
	DeleteObject(penBlack);
	ReleaseDC(&dc1);
	ReleaseDC(&dc2);
}

void Cstart::RectangleLeftToRight(int index, int order)
{
	CClientDC dc1(this);
	CClientDC dc2(this);

	CPen pen, penBlack;
	pen.CreatePen(PS_SOLID, 1, m_rgbColor[index][order].Color());
	penBlack.CreatePen(PS_SOLID, 1, RGB(0, 0, 0));

	dc1.SelectObject(pen);
	dc2.SelectObject(penBlack);

	int X = 0, Y = 0, nWidth = 0, nHigh = 0, nWndX = 0, nWndY = 0;

	X = m_staPointx[index];
	Y = m_staPointy[index];

	nWidth = m_iWidth[index];
	nHigh  = m_iHigh[index];

	nWndX  = m_staPointx[index] + m_iWidth[index];
	nWndY  = m_staPointy[index] + m_iHigh[index];

	//从左到右用颜色笔画矩形
	for (X; X <= nWndX; X++)
	{
		dc1.MoveTo(X, Y);
		dc1.LineTo(X, nWndY);
		Sleep(1);			
	}
	Sleep(20);

	//从左和右两边同时画矩形 用黑笔
	X = m_staPointx[index];
	for (X; X <= nWndX; X++)
	{
		dc2.MoveTo(X, Y);
		dc2.LineTo(X, nWndY);
		dc2.MoveTo(nWndX, Y);
		dc2.LineTo(nWndX, nWndY);
		nWndX = nWndX - 1;
		Sleep(5);
	}
	Sleep(20);

	//从中间向两边同时画矩形 用颜色笔
	X      = m_staPointx[index] + m_iWidth[index]/2;
	nWndX  = m_staPointx[index] + m_iWidth[index]/2;
	for (X; m_staPointx[index] <= X; X--)
	{
		dc1.MoveTo(X, Y);
		dc1.LineTo(X, nWndY);
		dc1.MoveTo(nWndX, Y);
		dc1.LineTo(nWndX, nWndY);
		nWndX = nWndX + 1;
		Sleep(5);
	}
	Sleep(20);

	//百叶变幻1 从左到右 分四块区域 用黑笔
	X      = m_staPointx[index] ;
	nWndX  = m_staPointx[index] + m_iWidth[index];	
	for (int n = 0; n <= nWidth/4; n++)
	{
		dc2.MoveTo(X, Y);
		dc2.LineTo(X, nWndY);

		dc2.MoveTo(X + nWidth/4, Y);
		dc2.LineTo(X + nWidth/4, nWndY);

		dc2.MoveTo(X + nWidth/2, Y);
		dc2.LineTo(X + nWidth/2, nWndY);

		dc2.MoveTo(X + nWidth*3/4, Y);
		dc2.LineTo(X + nWidth*3/4, nWndY);
		X = X + 1;
		Sleep(20);
	}
	Sleep(20);
	
	//百叶变幻2 从左到右  分四块区域 用颜色笔
	X      = m_staPointx[index] ;
	nWndX  = m_staPointx[index] + m_iWidth[index];	
	for (n = 0; n <= nWidth/4; n++)

⌨️ 快捷键说明

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