📄 demodlg.cpp
字号:
if(m_all_run_flag==false) break;//
}
//
dc.BitBlt(0,0,w,h,&MemDC,0,0,SRCCOPY);
Sleep(speed);
//show
}
break;
case 31:// 马赛克
{
//mosaic
// clear
CBrush brush;
brush.CreateSolidBrush(RGB(0,0,0));
dc.FillRect(CRect(0,0,w,h),&brush);
brush.DeleteObject();
///////////////////////////////////////////////////////
int n=w*h/64;//16;
int x,y,i,j;
int *m_wz_flag;
m_wz_flag=new int[n];
if(m_wz_flag==NULL)
{
goto exit_LOOP;//return;
}
for( i=0;i<n;i++)
{
m_wz_flag[i]=i;
}
//get rand speed,使每次产生的随机数不一样
SYSTEMTIME st;
GetSystemTime(&st);
unsigned int seed;
seed=st.wHour*3600+st.wMinute*60+st.wSecond;
srand(seed);
// srand(m_width*m_height);
//srand((unsigned)time( NULL ) );
for(i=0;i<n;i++)
{
/////////////////////////////////////////////////
//
j=rand();
j=j%(n-i); // 得到一个0-(n-i)的数
//draw m_wz_flag[j]
x=m_wz_flag[j]%(w/8)*8; //4
y=m_wz_flag[j]/(w/8)*8;//4
//show
dc.BitBlt(0+x,0+y,8,8,&MemDC,x,y,SRCCOPY);
//delay time for speed
Sleep(speed);
//set new wz flag
for(int k=j;k<n-i-1;k++)
m_wz_flag[k]=m_wz_flag[k+1];
//
if(m_all_run_flag==false) break;//
}
delete m_wz_flag;
}
break;
case 32://全扇行显示->顺时针
{
// clear
CBrush brush;
brush.CreateSolidBrush(RGB(0,0,0));
dc.FillRect(CRect(0,0,w,h),&brush);
brush.DeleteObject();
//--------------------------------------------------------------
//copy 横线和纵线 deasil:顺时针 逆时针 anticlockwise
//show
// dc.BitBlt(0,0+h/2,w,1,&MemDC,0,h/2,SRCCOPY);
// dc.BitBlt(0+w/2,0,1,h,&MemDC,w/2,0,SRCCOPY);
//delaytime
// Sleep(speed);
dc.BitBlt(w/2,0,1,h/2,&MemDC,w/2,0,SRCCOPY);
long x,y,t;//,ti;
long i,j;
for(i=0;i<90;i++)//5
{
//1象函 //M_PI/180
for(j=0;j<=h/2;j++)
{
y=j;
x=(long)(y/tan((90-i)*M_PI/180.0));
dc.BitBlt(w/2,h/2-y,x,1,&MemDC,w/2,h/2-y,SRCCOPY);
}
//delaytime
Sleep(speed); //
//
if(m_all_run_flag==false) break;//
}
//
t=(long)(w/2*tan(5*M_PI/180.0));
dc.BitBlt(w/2,h/2-t,w/2,t,&MemDC,w/2,h/2-t,SRCCOPY);
for(i=0;i<90;i++)
{
//2象函 :对称原理 换坐标
for(j=0;j<=w/2;j++)
{
x=j;
y=(long)(x*tan(i*M_PI/180.0));
dc.BitBlt(w/2+x,h/2,1,y,&MemDC,w/2+x,h/2,SRCCOPY);
}
//delaytime
Sleep(speed); //
//
if(m_all_run_flag==false) break;//
}
t=(long)(h/(2*tan(5*M_PI/180.0)));
dc.BitBlt(w/2,h/2,t,h/2,&MemDC,w/2,h/2,SRCCOPY);
//
for(i=0;i<90;i++)
{
//3象函
for(j=0;j<h/2;j++)
{
y=j;
x=(long)(y*tan(i*M_PI/180.0));
dc.BitBlt(0+w/2-x,0+h/2+y,x,1,&MemDC,w/2-x,h/2+y,SRCCOPY);
}
//delaytime
Sleep(speed);
//
if(m_all_run_flag==false) break;//
}
t=(long)(w/2*tan(5*M_PI/180.0));
dc.BitBlt(0,h/2,w/2,t,&MemDC,0,h/2,SRCCOPY);
for(i=0;i<90;i++)
{
//4象函
for(j=0;j<=w/2;j++)
{
x=j;
y=(long)(x*tan(i*M_PI/180.0));
dc.BitBlt(0+w/2-x,0+h/2-y,1,y,&MemDC,w/2-x,h/2-y,SRCCOPY);
}
//delaytime
Sleep(speed);
//
if(m_all_run_flag==false) break;//
}
//
Sleep(speed);
//dc.BitBlt(0,0,w,h,&MemDC,0,0,SRCCOPY);
//show
t=(long)(h/2*tan(5*M_PI/180.0));
dc.BitBlt(w/2-t,0,t,h/2,&MemDC,w/2-t,0,SRCCOPY);
}
break;
case 33://菱型放大展开显示
{
// clear
CBrush brush;
brush.CreateSolidBrush(RGB(0,0,0));
dc.FillRect(CRect(0,0,w,h),&brush);
brush.DeleteObject();
//--------------------------------------------------------------
//copy 横线和纵线 deasil:顺时针 逆时针 anticlockwise
//show
long x,y,t;
long i,j;
t=w>h?w:h;
for(i=0;i<t;i++)
{
//1象函 //M_PI/180
for(j=0;j<i;j++)
{
x=w/2+j;
y=h/2-(i-j);//(long)(x*tanh(i*M_PI/180.0));
dc.BitBlt(x,y,1,i-j,&MemDC,x,y,SRCCOPY);
}
//2象函 :对称原理 换坐标
for(j=0;j<i;j++)
{
x=w/2-j; //
y=h/2-(i-j);
dc.BitBlt(x,y,1,i-j,&MemDC,x,y,SRCCOPY);
}
//3象函 :对称原理 换坐标
for(j=0;j<i;j++)
{
x=w/2-j;
y=h/2;//
dc.BitBlt(x,y,1,i-j,&MemDC,x,y,SRCCOPY);
}
//4象函 :对称原理 换坐标
for(j=0;j<i;j++)
{
x=w/2+j;//
y=h/2;//
dc.BitBlt(x,y,1,i-j,&MemDC,x,y,SRCCOPY);
}
//delaytime
Sleep(speed); //
//
if(m_all_run_flag==false) break;//
}//for
}
break;
default:
break;
}
//delaytime
if(m_all_run_flag==false) goto exit_LOOP;
MySleep(delaytime);
if(m_all_run_flag==false) goto exit_LOOP;
//退出方式
switch(out)
{
case 1://立即退出
{
CBrush brush;
brush.CreateSolidBrush(RGB(0,0,0));
CBrush *oldbrush;
oldbrush=MemDC.SelectObject(&brush);
MemDC.Rectangle(0,0,w,h);
//show
dc.BitBlt(0,0, w,h,&MemDC,0,0,SRCCOPY);
//
MemDC.SelectObject(oldbrush);
brush.DeleteObject();
}
break;
case 2://闪烁退出
{
CBrush brush;
brush.CreateSolidBrush(RGB(0,0,0));
//第一次
//cls->black
dc.FillRect(CRect(0,0,w,h),&brush);
//delay time
Sleep(200);//200ms
//show dc
dc.BitBlt(0,0, w,h,&MemDC,0,0,SRCCOPY);
//delay time
Sleep(200);//200ms
if(m_all_run_flag==false) goto exit_l2;
//第二次
//cls->black
dc.FillRect(CRect(0,0,w,h),&brush);
//delay time
Sleep(200);//200ms
//show dc
dc.BitBlt(0,0, w,h,&MemDC,0,0,SRCCOPY);
//delay time
Sleep(200);//200ms
if(m_all_run_flag==false) goto exit_l2;
//第三次
//cls->black
dc.FillRect(CRect(0,0,w,h),&brush);
//delay time
Sleep(200);//200ms
//show dc
dc.BitBlt(0,0, w,h,&MemDC,0,0,SRCCOPY);
//delay time
Sleep(200);//200ms
if(m_all_run_flag==false) goto exit_l2;
//最后
//CLS
dc.FillRect(CRect(0,0,w,h),&brush);
//
exit_l2:
brush.DeleteObject();
}
break;
case 3://由上至下移动消失
{
CDC tmpdc;
tmpdc.CreateCompatibleDC(&dc);
CBitmap b;
b.CreateCompatibleBitmap(&dc,w,h);
CBitmap *ob=tmpdc.SelectObject(&b);
tmpdc.BitBlt(0,0,w,h,&dc,0,0,SRCCOPY);
CBrush brush;
brush.CreateSolidBrush(RGB(0,0,0));
//cls->black
MemDC.FillRect(CRect(0,0,w,h),&brush);
//show dc
for(int i=0;i<h;i++)
{
//
if(m_all_run_flag==false) break;
dc.BitBlt(0,i+1,w,h-i-1,&tmpdc,0,0,SRCCOPY);
//
dc.BitBlt(0,0,w,i+1,&MemDC,0,h-i-1,SRCCOPY);
//delay time
Sleep(speed);
}
//RELEASE
brush.DeleteObject();
tmpdc.SelectObject(ob);
b.DeleteObject();
tmpdc.DeleteDC();
}
break;
case 4://由下至上移动消失
{
CDC tmpdc;
tmpdc.CreateCompatibleDC(&dc);
CBitmap b;
b.CreateCompatibleBitmap(&dc,w,h);
CBitmap *ob=tmpdc.SelectObject(&b);
tmpdc.BitBlt(0,0,w,h,&dc,0,0,SRCCOPY);
CBrush brush;
brush.CreateSolidBrush(RGB(0,0,0));
//cls->black
MemDC.FillRect(CRect(0,0,w,h),&brush);
//show dc
//show
for(int i=0;i<h;i++)
{
//
if(m_all_run_flag==false) break;
dc.BitBlt(0,0,w,h-i-1,&tmpdc,0,i,SRCCOPY);
//
dc.BitBlt(0,h-i-1,w,i+1,&MemDC,0,0,SRCCOPY);
//delay time
Sleep(speed);
}
//RELEASE
brush.DeleteObject();
tmpdc.SelectObject(ob);
b.DeleteObject();
tmpdc.DeleteDC();
}
break;
case 5://由上至下展开消失
{
//CDC tmpdc;
//tmpdc.CreateCompatibleDC(&dc);
//CBitmap b;
//b.CreateCompatibleBitmap(&dc,w,h);
//CBitmap *ob=tmpdc.SelectObject(&b);
//tmpdc.BitBlt(0,0,w,h,&dc,0,0,SRCCOPY);
CBrush brush;
brush.CreateSolidBrush(RGB(0,0,0));
//cls->black
MemDC.FillRect(CRect(0,0,w,h),&brush);
//show dc
for(int i=0;i<h;i++)
{
if(m_all_run_flag==false) break;
//show
dc.BitBlt(0,i,w,1,&MemDC,0,i,SRCCOPY);
//delay time
Sleep(speed);
}
//RELEASE
brush.DeleteObject();
//tmpdc.SelectObject(ob);
//b.DeleteObject();
//tmpdc.DeleteDC();
}
break;
case 6://由下至上展开消失
{
//CDC tmpdc;
//tmpdc.CreateCompatibleDC(&dc);
//CBitmap b;
//b.CreateCompatibleBitmap(&dc,w,h);
//CBitmap *ob=tmpdc.SelectObject(&b);
//tmpdc.BitBlt(0,0,w,h,&dc,0,0,SRCCOPY);
CBrush brush;
brush.CreateSolidBrush(RGB(0,0,0));
//cls->black
MemDC.FillRect(CRect(0,0,w,h),&brush);
//show dc
//show
for(int i=0;i<h;i++)
{
if(m_all_run_flag==false) break;
//show
dc.BitBlt(0,h-i-1,w,1,&MemDC,0,h-i-1,SRCCOPY);
//delay time
Sleep(speed);
}
//RELEASE
brush.DeleteObject();
//tmpdc.SelectObject(ob);
//b.DeleteObject();
//tmpdc.DeleteDC();
}
break;
case 7://由中间至上下展开消失
{
CBrush brush;
brush.CreateSolidBrush(RGB(0,0,0));
//cls->black
MemDC.FillRect(CRect(0,0,w,h),&brush);
//show
int k=h/2;
//show k
// if(h%2!=0)
dc.BitBlt(0,k,w,1,&MemDC,0,k,SRCCOPY);
//show [0]-[k-1] and [k+1],[2k]
for(int i=0;i<k;i++)
{
if(m_all_run_flag==false) break;
//up
dc.BitBlt(0,k-1-i,w,1,&MemDC,0,k-1-i,SRCCOPY);
//down
dc.BitBlt(0,k+1+i,w,1,&MemDC,0,k+1+i,SRCCOPY);
//delay time
Sleep(speed);
}
//RELEASE
brush.DeleteObject();
}
break;
case 8://由上下至中间展开消失
{
CBrush brush;
brush.CreateSolidBrush(RGB(0,0,0));
//cls->black
MemDC.FillRect(CRect(0,0,w,h),&brush);
//show
int k=h/2;
//show [0]-[k-1] and [k+1],[2k]
for(int i=0;i<k;i++)
{
if(m_all_run_flag==false) break;
//up
dc.BitBlt(0,i,w,1,&MemDC,0,i,SRCCOPY);
//down
dc.BitBlt(0,h-1-i,w,1,&MemDC,0,h-1-i,SRCCOPY);
//delay time
Sleep(speed);
}
//show k
//if(h%2!=0)
dc.BitBlt(0,k,w,1,&MemDC,0,k,SRCCOPY);
//RELEASE
brush.DeleteObject();
}
break;
case 9://由左至右展开消失
{
//CDC tmpdc;
//tmpdc.CreateCompatibleDC(&dc);
//CBitmap b;
//b.CreateCompatibleBitmap(&dc,w,h);
//CBitmap *ob=tmpdc.SelectObject(&b);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -