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

📄 demodlg.cpp

📁 客户端: 这是一个完整的基于Wince 4.1图形图象,网络通讯(C/S)模式下的商用程序源代码包.
💻 CPP
📖 第 1 页 / 共 5 页
字号:
					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 + -