//左右翻转

DDBLTFX  ddbltfx;  
ZeroMemory(&ddbltfx, sizeof(ddbltfx));
ddbltfx.dwSize = sizeof(ddbltfx);
ddbltfx.dwDDFX = DDBLTFX_MIRRORLEFTRIGHT;
lpPrimarySurface->Blt(NULL,lpBmpSurface,NULL,DDBLT_WAIT | DDBLT_DDFX,&ddbltfx);

//从上到下移动

      RECT rcDest = {0,0,480,0};
      RECT rcSource = {0,272,480,272};
      for(int i=0;i<68;i++)
      {
       rcDest.bottom+=4;
       rcSource.top-=4;
       lpPrimarySurface->Blt(&rcDest, lpBmpSurface, &rcSource, DDBLT_WAIT, NULL);
      }

//从下向上移动

      RECT rcDest = {0,272,480,272};
      RECT rcSource = {0,0,480,0};
      for(int i=0;i<68;i++)
      {
       rcDest.top-=4;
       rcSource.bottom+=4;
       lpPrimarySurface->Blt(&rcDest, lpBmpSurface, &rcSource, DDBLT_WAIT, NULL);
      }

//从左到右移动

      RECT rcDest = {0,0,0,272};
      RECT rcSource = {480,0,480,272};
      for(int i=0;i<120;i++)
      {
       rcDest.right+=4;
       rcSource.left-=4;
       lpPrimarySurface->Blt(&rcDest, lpBmpSurface, &rcSource, DDBLT_WAIT, NULL);
      }

//从右到左移动