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