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

📄 demodlg.cpp

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