📄 demodlg.cpp
字号:
if(w>=h)
n=w;
else
n=h;
int ww,hh;
for(int i=0;i<=n;i++)//x
{
if(m_all_run_flag==false) break;
ww=i;
hh=i;
if(i>=w) ww=w;
if(i>=h) hh=h;
dc.BitBlt(w-ww,h-hh,ww+1,hh+1,&MemDC, 0,0,SRCCOPY);
//speed
SleepMS(speed);
}
}
break;
case 25://雨滴效果
{
for(int i=h-1;i>=0;i--)
{
if(m_all_run_flag==false) break;
for(int j=0;j<i;j++)
{
if(m_all_run_flag==false) break;
dc.BitBlt(0,j,w,1,&MemDC,0,i,SRCCOPY);
//Sleep(1);
}
SleepMS(speed);
}
}
break;
case 26://矩形放大
{
// clear
CBrush brush;
brush.CreateSolidBrush(RGB(0,0,0));
dc.FillRect(CRect(0,0,w,h),&brush);
brush.DeleteObject();
//--------------------------------------------------------
int i,j;
j=0;
if(w>h)
{
for(i=0;i<w/2;i++)
{
//show
dc.BitBlt(0+w/2-i-1,0+h/2-j-1,(i+1)*2,(j+1)*2,&MemDC,w/2-i-1,h/2-j-1,SRCCOPY);
//sleep
SleepMS(speed);
j++;
if(j>=h/2-1) j=h/2-1;
//
if(m_all_run_flag==false) break;//
}
}
else
{
for(i=0;i<h/2;i++)
{
//show
dc.BitBlt(0+w/2-j-1,0+h/2-i-1,(j+1)*2,(i+1)*2,&MemDC,w/2-j-1,h/2-i-1,SRCCOPY);
//Sleep
SleepMS(speed);
j++;
if(j>=w/2-1) j=w/2-1;
//
if(m_all_run_flag==false) break;//
}
}
}
break;
case 27://矩形缩小
{
// clear
CBrush brush;
brush.CreateSolidBrush(RGB(0,0,0));
dc.FillRect(CRect(0,0,w,h),&brush);
brush.DeleteObject();
//----------------------------------------------------------
int i,j;
j=0;
if(w>h)
{
for(i=0;i<w/2;i++)
{
//up
dc.BitBlt(0+i,0+j,w-i,1,&MemDC,i,j,SRCCOPY);
//down
dc.BitBlt(0+i,0+h-j,w-i,1,&MemDC,i,h-j,SRCCOPY);
//left
dc.BitBlt(0+i,0+j,1,h-j,&MemDC,i,j,SRCCOPY);
//right
dc.BitBlt(0+w-i,0+j,1,h-j,&MemDC,w-i,j,SRCCOPY);
//delay time
SleepMS(speed);
j++;
if(j>=h/2) j=h/2;
if(m_all_run_flag==false) break;//
}
}
else//m_height>m_width
{
for(i=0;i<h/2;i++)
{
//up
dc.BitBlt(0+j,0+i,w-j,1,&MemDC,j,i,SRCCOPY);
//down
dc.BitBlt(0+j,0+h-i,w-j,1,&MemDC,j,h-i,SRCCOPY);
//left
dc.BitBlt(0+j,0+i,1,h-i,&MemDC,j,i,SRCCOPY);
//right
dc.BitBlt(0+w-j,0+i,1,h-i,&MemDC,w-j,i,SRCCOPY);
//delaytime for speed
SleepMS(speed);
j++;
if(j>=w/2) j=w/2;
if(m_all_run_flag==false) break;//
}
}
}
break;
case 28://由右至左移动出现
{
//save dc bitmap==>tmpdc
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);
//show
for(int i=0;i<w;i++)
{
if(m_all_run_flag==false) break;
dc.BitBlt(0,0,w-i-1,h,&tmpdc,i+1,0,SRCCOPY);
//
dc.BitBlt(w-i-1,0,i,h,&MemDC,0,0,SRCCOPY);
//delay time
SleepMS(speed);
}
//RELEASE
tmpdc.SelectObject(ob);
b.DeleteObject();
tmpdc.DeleteDC();
}
break;
case 29://由左至右移动出现
{
//save dc bitmap==>tmpdc
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);
//show
for(int i=0;i<w;i++)
{
if(m_all_run_flag==false) break;
dc.BitBlt(i+1,0,w-i-1,h,&tmpdc,0,0,SRCCOPY);
//
dc.BitBlt(0,0,i+1,h,&MemDC,w-i-1,0,SRCCOPY);
//delay time
SleepMS(speed);
}
//RELEASE
tmpdc.SelectObject(ob);
b.DeleteObject();
tmpdc.DeleteDC();
}
break;
/* case 30://左压缩放大
{
for(int i=0;i<w;i++)
{
if(m_all_run_flag==false) break;
//show
dc.StretchBlt(0,0,i+1,h,&MemDC,0,0,w,h,SRCCOPY);
//delay time
Sleep(speed);
}
}
break;
case 31://右压缩放大
{
for(int i=0;i<w;i++)
{
if(m_all_run_flag==false) break;
//show
dc.StretchBlt(w-1-i,0,i+1,h,&MemDC,0,0,w,h,SRCCOPY);
//delay time
Sleep(speed);
}
}
break;
case 32://上压缩放大
{
for(int i=0;i<h;i++)
{
if(m_all_run_flag==false) break;
//show
dc.StretchBlt(0,0,w,i+1,&MemDC,0,0,w,h,SRCCOPY);
//delay time
Sleep(speed);
}
}
break;
case 33://下压缩放大
{
for(int i=0;i<h;i++)
{
if(m_all_run_flag==false) break;
//show
dc.StretchBlt(0,h-1-i,w,i+1,&MemDC,0,0,w,h,SRCCOPY);
//delay time
Sleep(speed);
}
}
break;
*/
case 30://sector merge 半扇型显示
{
// 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
SleepMS(speed);
long x,y;//,ti;
long i,j;
for(i=0;i<90;i++)
{
//1象函 //M_PI/180
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);
}
//2象函 :对称原理 换坐标
for(j=0;j<h/2;j++)
{
x=j;
y=(long)(x*tan(i*M_PI/180.0));
dc.BitBlt(0+w/2-y,0+h/2-x,y,1,&MemDC,w/2-y,h/2-x,SRCCOPY);
}
//3象函
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);
}
//4象函
for(j=0;j<h/2;j++)
{
x=j;
y=(long)(x*tan(i*M_PI/180.0));
dc.BitBlt(0+w/2+y,0+h/2+x,y,1,&MemDC,w/2+y,h/2+x,SRCCOPY);
}
//delaytime
SleepMS(speed);
//
if(m_all_run_flag==false) break;//
}
//
dc.BitBlt(0,0,w,h,&MemDC,0,0,SRCCOPY);
SleepMS(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
SleepMS(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
SleepMS(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
SleepMS(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
SleepMS(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
SleepMS(speed);
//
if(m_all_run_flag==false) break;//
}
//
//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);
SleepMS(speed);
}
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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -