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

📄 drawform.h

📁 C++Builder程序员编程手记《配书光盘》
💻 H
字号:
//---------------------------------------------------------------------------
#ifndef drawformH
#define drawformH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <Buttons.hpp>
#include <ComCtrls.hpp>
#include <ExtCtrls.hpp>
#include <Menus.hpp>
#include <Graphics.hpp>
#include <Dialogs.hpp>
#include <Clipbrd.hpp>
#include <ExtDlgs.hpp> //增加的头文件
#include <vcl/printers.hpp>//增加的头文件
#include <jpeg.hpp>
//---------------------------------------------------------------------------
enum TDrawingTool {dtLine,dtPolyLine,dtEllipse,dtRectangle,dtRoundRect,
                   dtText,dtPencil,dtSelect,dtBezier,dtRubber};

class Tmainform : public TForm
{
__published:	// IDE-managed Components
    TMainMenu *MainMenu1;
    TMenuItem *FileMenu;
    TMenuItem *FileExit;
    TPanel *Panel1;
    TSpeedButton *LineButton;
    TStatusBar *StatusBar1;
    TSpeedButton *PlineButton;
    TPanel *Panel2;
    TImage *Image1;
    TSpeedButton *EllipseButton;
    TSpeedButton *RectangleButton;
    TSpeedButton *RoundRctButton;
    TSpeedButton *TextButton;
    TEdit *Edit;
    TPanel *PenColor;
    TColorDialog *ColorDialog;
    TSpeedButton *PenButton;
    TSpeedButton *SelectButton;
    TMenuItem *E1;
    TMenuItem *EditCopy;
    TMenuItem *EditCut;
    TMenuItem *EditPaste;
    TMenuItem *N1;
    TMenuItem *EditClear;
    TPanel *BrushColor;
  TMenuItem *HelpMenu;
  TMenuItem *HelpAbout;
  TMenuItem *FileOpen;
  TMenuItem *FileNew;
  TMenuItem *FileSave;
  TMenuItem *FileSaveAs;
  TMenuItem *N2;
  TMenuItem *FilePrint;
  TMenuItem *FilePrintSetup;
  TMenuItem *N3;
  TOpenPictureDialog *OpenPictureDialog1;
  TSavePictureDialog *SavePictureDialog1;
    TPrinterSetupDialog *PrinterSetupDialog1;
    TPrintDialog *PrintDialog1;
    TControlBar *ControlBar1;
    TComboBox *PenStyle;
    TComboBox *BrushStyle;
    TComboBox *FontBox;
    TPanel *Panel4;
    TEdit *PenWidth;
    TUpDown *UpDown1;
  TSpeedButton *BezierButton;
  TSpeedButton *RubberButton;
    void __fastcall FileExitClick(TObject *Sender);
    void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
    void __fastcall Image1MouseUp(TObject *Sender, TMouseButton Button,
          TShiftState Shift, int X, int Y);
    void __fastcall Image1MouseDown(TObject *Sender, TMouseButton Button,
          TShiftState Shift, int X, int Y);
    void __fastcall Image1MouseMove(TObject *Sender, TShiftState Shift,
          int X, int Y);
    void __fastcall Image1Click(TObject *Sender);
    void __fastcall PenColorClick(TObject *Sender);
    void __fastcall FormCreate(TObject *Sender);
    void __fastcall PenStyleChange(TObject *Sender);
    void __fastcall BrushStyleChange(TObject *Sender);
    void __fastcall BrushColorClick(TObject *Sender);
    void __fastcall PenWidthChange(TObject *Sender);
    void __fastcall FontBoxChange(TObject *Sender);
    void __fastcall EditClearClick(TObject *Sender);
    void __fastcall EditCopyClick(TObject *Sender);
    void __fastcall EditPasteClick(TObject *Sender);
  void __fastcall HelpAboutClick(TObject *Sender);
  void __fastcall FileNewClick(TObject *Sender);
  void __fastcall FileOpenClick(TObject *Sender);
  void __fastcall FileSaveClick(TObject *Sender);
  void __fastcall FileSaveAsClick(TObject *Sender);
  void __fastcall ButtonClick(TObject *Sender);
  void __fastcall EditCutClick(TObject *Sender);
  void __fastcall FilePrintSetupClick(TObject *Sender);
  void __fastcall FilePrintClick(TObject *Sender);
private:
    int PolyCount,BezierEnd;        //统计多义线的节点,统计Bezier曲线编辑次数的标志
    bool Drawing,OutText,Selected,msHide; //是/否绘图标志,是/否输出文本标志,是/否已经选择标志,鼠标隐藏标志
    POINT Origin,MovePt;  //鼠标按下时的起点,鼠标移动到的点
    TPoint PolyPt[100];   //存放多义线的节点
    TPoint BezierPt[4];   //存放Bezier曲线的控制点
    TDrawingTool DrawingTool; //图形工具变量
    TRect SelectRect;     //选择的矩形区域
    AnsiString CurrentFile; //当前的文件名
    Graphics::TBitmap *SelectImage;  
    TBrushStyle PreFill;              //前一种填充模式

    int oldx,oldy,newx,newy;
    TRect DRect,SRect;  //目标图像矩形,源图像矩形
    void __fastcall GetFontNames(void);
    void __fastcall ShowHint(TObject *Sender);
    TRect __fastcall GetRect(TPoint First, TPoint Second);
    void __fastcall GetSelImage(TRect);
    bool __fastcall OpenAFile();
    void __fastcall NewAFile();
  void RubberFill(int X, int Y,int Intend,int CurSize);
  bool __fastcall SaveAFile(AnsiString SaveFileName);
public:		// User declarations
    int sSide,dSide;
    __fastcall Tmainform(TComponent* Owner);
};
//---------------------------------------------------------------------------
class TCharsetObject : public TObject
{
  public:
    int Charset;
    __fastcall TCharsetObject(int FCharset);
};
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
extern PACKAGE Tmainform *mainform;
    
//---------------------------------------------------------------------------
#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -