//在窗体上绘制直线椭圆、矩形。
//1.思路:用鼠标按下和松开确定要花图像的开始和结束位置,并设定好Pen和Brush的各种属性。
//2.界面
//3.代码:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "MouseDrawImage.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int sort;//绘制图像的类别
int ox,oy;//鼠标按下去时的坐标位置
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
sort=0;//不绘制图形
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button6Click(TObject *Sender)
{
if (ColorDialog1->Execute())
{
TColor pencolor;
Canvas->Pen->Color=ColorDialog1->Color;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::RadioButton1Click(TObject *Sender)
{
Canvas->Pen->Style=psSolid;//设定画笔为实线
}
//---------------------------------------------------------------------------
void __fastcall TForm1::RadioButton2Click(TObject *Sender)
{
Canvas->Pen->Style=psDash;//设定画笔为破折线
}
//---------------------------------------------------------------------------
void __fastcall TForm1::RadioButton3Click(TObject *Sender)
{
Canvas->Pen->Style=psDot;//设定画笔为点线
}
//---------------------------------------------------------------------------
void __fastcall TForm1::RadioButton4Click(TObject *Sender)
{
Canvas->Pen->Style=psDashDot;//设定画笔为点线+破折线
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit1Change(TObject *Sender)
{
Canvas->Pen->Width=StrToInt(Edit1->Text);//设定线宽
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button7Click(TObject *Sender)
{
if (ColorDialog1->Execute())
{
Canvas->Brush->Color=ColorDialog1->Color;//设定画刷的颜色
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::RadioButton5Click(TObject *Sender)
{
Canvas->Brush->Style=bsSolid;//设定画刷为实心
}
//---------------------------------------------------------------------------
void __fastcall TForm1::RadioButton6Click(TObject *Sender)
{
Canvas->Brush->Style=bsClear;//设定画刷为透明
}
//---------------------------------------------------------------------------
void __fastcall TForm1::RadioButton7Click(TObject *Sender)
{
Canvas->Brush->Style=bsHorizontal;//设定画刷为水平填充
}
//---------------------------------------------------------------------------
void __fastcall TForm1::RadioButton8Click(TObject *Sender)
{
Canvas->Brush->Style=bsVertical;//设定画刷为垂直填充
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
sort=0;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
sort=1;
}
//--------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
sort=3;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
sort=2;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button5Click(TObject *Sender)
{
Canvas->Refresh();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift,
int X, int Y)
{
ox=X;
oy=Y;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormMouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift,
int X, int Y)
{
switch(sort)
{
case 1:
Canvas->MoveTo(ox,oy);
Canvas->LineTo(X,Y);
break;
case 2:
Canvas->Rectangle(ox,oy,X,Y);
break;
case 3:
Canvas->Ellipse(ox,oy,X,Y);
break;
}
}
//---------------------------------------------------------------------------