📄 unit2.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit2.h"
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm2 *Form2;
//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm2::Image1MouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
IsRegionSelected=true;
OriginPt = Point(X, Y);
MovePt = OriginPt;
}
//---------------------------------------------------------------------------
void __fastcall TForm2::FormCreate(TObject *Sender)
{
SetBounds( 0, 0, Screen->Width, Screen->Height );
}
//---------------------------------------------------------------------------
void TForm2::CaptureRegion(void)
{
if((MovePt.y-OriginPt.y)!=0)
{
int Width=abs(MovePt.x-OriginPt.x);
int Height=abs(MovePt.y-OriginPt.y);
int Originx=OriginPt.x;
int Originy=OriginPt.y;
if (MovePt.x < OriginPt.x) Originx = MovePt.x;
if (MovePt.y < OriginPt.y) Originy = MovePt.y;
// 将桌面图像的指定区域拷贝到Form1上的Image1中
StretchBlt(Form1->Image1->Canvas->Handle,
0,0,
Width,
Height,
Image1->Canvas->Handle,
Originx,
Originy,
Width,
Height,
SRCCOPY);
Form1->Image1->Width=abs(MovePt.x-OriginPt.x);
Form1->Image1->Height=abs(MovePt.y-OriginPt.y);
Form1->Image1->Picture->Bitmap->Width=abs(MovePt.x-OriginPt.x);
Form1->Image1->Picture->Bitmap->Height=abs(MovePt.y-OriginPt.y);
}
else
{
Form1->Image1->Picture->Bitmap->Canvas->Brush->Color=clWhite;
Form1->Image1->Picture->Bitmap->Canvas->FillRect(Canvas->ClipRect) ;
}
}
//---------------------------------------------------------------------------
void TForm2::DrawRect(TPoint TopLeft, TPoint BottomRight, TPenMode Mode)
{
Canvas->Pen->Mode = Mode;
Canvas->Pen->Width = 2;
Canvas->Rectangle(TopLeft.x, TopLeft.y, BottomRight.x, BottomRight.y);
}
//-----------------------------------------------------------------------------
void __fastcall TForm2::Image1MouseMove(TObject *Sender, TShiftState Shift,
int X, int Y)
{
if (IsRegionSelected){
DrawRect(OriginPt, MovePt, pmNotXor);
MovePt = Point(X, Y);
MovePt.x=MovePt.x+Image1->Left;
MovePt.y=MovePt.y+Image1->Top;
DrawRect(OriginPt, MovePt, pmNotXor);
}
}
//---------------------------------------------------------------------------
void __fastcall TForm2::Image1MouseUp(TObject *Sender, TMouseButton Button,
TShiftState Shift, int X, int Y)
{
if (IsRegionSelected)
{
MovePt = Point(X, Y);
IsRegionSelected=false;
CaptureRegion();
}
Form1->Visible=true;
Form2->Visible=false;
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -