Unit1.cpp
上传用户:lhxd_sz
上传日期:2014-10-02
资源大小:38814k
文件大小:3k
源码类别:

VC书籍

开发平台:

C++ Builder

  1. //---------------------------------------------------------------------------
  2. #include <vcl.h>
  3. #pragma hdrstop
  4. #include "Unit1.h"
  5. //---------------------------------------------------------------------------
  6. #pragma package(smart_init)
  7. #pragma resource "*.dfm"
  8. TForm1 *Form1;
  9. //---------------------------------------------------------------------------
  10. __fastcall TForm1::TForm1(TComponent* Owner)
  11.         : TForm(Owner)
  12. {
  13.   Image4->Width=Image2->Width;
  14.   Image4->Height=Image2->Height;
  15.   Image4X=-1;
  16.   Image4Y=-1;
  17.   CurX=0;CurY=0;
  18. }
  19. //---------------------------------------------------------------------------
  20. void __fastcall TForm1::ImageBackup(int x,int y)
  21. {
  22.   int ww,hh;
  23.   TRect drc,src;
  24.   Image4X=x;
  25.   Image4Y=y;
  26.   ww=Image4->Width;
  27.   hh=Image4->Height;
  28.   drc=Rect(0,0,ww,hh);
  29.   src=Rect(Image4X,Image4Y,Image4X+ww,Image4Y+hh);
  30.   Image4->Canvas->CopyMode=cmSrcCopy;
  31.   Image4->Canvas->CopyRect(drc,Image1->Canvas,src);
  32. }
  33. //---------------------------------------------------------------------------
  34. void __fastcall TForm1::ImageRestore(void)
  35. {
  36.   int ww,hh;
  37.   TRect drc,src;
  38.   if((Image4X==-1)||(Image4Y==-1))return;
  39.   ww=Image4->Width;
  40.   hh=Image4->Height;
  41.   drc=Rect(Image4X,Image4Y,Image4X+ww,Image4Y+hh);
  42.   src=Rect(0,0,ww,hh);
  43.   Image1->Canvas->CopyMode=cmSrcCopy;
  44.   Image1->Canvas->CopyRect(drc,Image4->Canvas,src);
  45. }
  46. //---------------------------------------------------------------------------
  47. void __fastcall TForm1::SetMoveBmp(int x,int y)
  48. {
  49.   TRect drc,src;
  50.   int ww,hh;
  51.   ImageRestore();
  52.   ImageBackup(x,y);
  53.   ww=Image2->Width;
  54.   hh=Image2->Height;
  55.   drc=Rect(x,y,x+ww,y+hh);
  56.   src=Rect(0,0,ww,hh);
  57.   Image1->Canvas->CopyMode=cmSrcAnd;
  58.   Image1->Canvas->CopyRect(drc,Image3->Canvas,src);
  59.   Image1->Canvas->CopyMode=cmSrcPaint;
  60.   Image1->Canvas->CopyRect(drc,Image2->Canvas,src);
  61. }
  62. //---------------------------------------------------------------------------
  63. void __fastcall TForm1::FormActivate(TObject *Sender)
  64. {
  65.   SetMoveBmp(CurX,CurY);
  66. }
  67. //---------------------------------------------------------------------------
  68. void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key,
  69.       TShiftState Shift)
  70. {
  71.   if(Key==VK_LEFT)
  72.   {
  73.     if(CurX>=10)CurX-=10;
  74.     SetMoveBmp(CurX,CurY);
  75.   }
  76.   else if(Key==VK_RIGHT)
  77.   {
  78.     if((CurX+Image4->Width)<=Image1->Width)
  79.       CurX+=10;
  80.     SetMoveBmp(CurX,CurY);
  81.   }
  82.   else if(Key==VK_DOWN)
  83.   {
  84.     if((CurY+Image4->Height)<=Image1->Height)
  85.       CurY+=10;
  86.     SetMoveBmp(CurX,CurY);
  87.   }
  88.   else if(Key==VK_UP)
  89.   {
  90.     if(CurY>=10)CurY-=10;
  91.     SetMoveBmp(CurX,CurY);
  92.   }
  93.   else{}
  94. }
  95. //---------------------------------------------------------------------------