📄 getmouse.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#include <TypInfo.hpp>
#pragma hdrstop
#include "GetMouse.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TFormCapturingMouse *FormCapturingMouse;
//---------------------------------------------------------------------------
__fastcall TFormCapturingMouse::TFormCapturingMouse(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TFormCapturingMouse::FormClick(TObject *Sender)
{
MessageDlg( "朋友们好!", mtInformation, TMsgDlgButtons() << mbOK, 0 );
}
//---------------------------------------------------------------------------
void __fastcall TFormCapturingMouse::FormMouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
if (Shift.Contains(ssRight))
{
Canvas->Brush->Style = bsClear;
Canvas->TextOut( X, Y, "You clicked here." );
}
}
//---------------------------------------------------------------------------
void __fastcall TFormCapturingMouse::FormKeyDown(TObject *Sender,
WORD &Key, TShiftState Shift)
{
MessageDlg( Key, mtInformation, TMsgDlgButtons() << mbOK, 0 );
}
//---------------------------------------------------------------------------
void __fastcall TFormCapturingMouse::FormKeyPress(TObject *Sender,
char &Key)
{
AnsiString S("您单击了键 " + AnsiString(Key));
MessageDlg(S, mtInformation, TMsgDlgButtons() << mbOK, 0);
}
//---------------------------------------------------------------------------
void __fastcall TFormCapturingMouse::CheckStateInfo(TShiftState Shift)
{
CheckBoxShiftKey->Checked = false;
CheckBoxControlKey->Checked = false;
CheckBoxLeftButton->Checked = false;
CheckBoxRightButton->Checked = false;
if( Shift.Contains( ssShift ) )
{
CheckBoxShiftKey->Checked = true;
MemoInfo->Lines->Add( "Shift Key is in." );
}
if( Shift.Contains( ssCtrl ) )
{
CheckBoxControlKey->Checked = true;
MemoInfo->Lines->Add( "Ctrl Key is in." );
}
if( Shift.Contains( ssLeft ) )
{
CheckBoxLeftButton->Checked = true;
MemoInfo->Lines->Add( "Left Button is in." );
}
if( Shift.Contains( ssRight ) )
{
CheckBoxRightButton->Checked = true;
MemoInfo->Lines->Add( "Right Button is in." );
}
}
//---------------------------------------------------------------------------
void __fastcall TFormCapturingMouse::PanelTestMouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
CheckStateInfo( Shift );
}
//---------------------------------------------------------------------------
void __fastcall TFormCapturingMouse::ButtonUnionClick(TObject *Sender)
{
OperateSet( Sender );
}
//---------------------------------------------------------------------------
void __fastcall TFormCapturingMouse::ButtonIntersectionClick( TObject *Sender)
{
OperateSet( Sender );
}
//---------------------------------------------------------------------------
void __fastcall TFormCapturingMouse::ButtonDifferenceClick(TObject *Sender)
{
OperateSet( Sender );
}
//---------------------------------------------------------------------------
void __fastcall TFormCapturingMouse::OperateSet( TObject *Sender )
{
AnsiString Operators[3] = {"+", "*", "-"};
MemoInfo->Lines->Add( "---------------------" );
TShiftState LeftRightShift;
LeftRightShift << ssLeft << ssRight << ssShift;
MemoInfo->Lines->Add( "Set LeftRightShift contains: ssLeft, ssRight, and ssShift." );
TShiftState LeftCtrl;
LeftCtrl << ssLeft << ssCtrl;
MemoInfo->Lines->Add( "Set LeftCtrl contains: ssLeft, and ssCtrl." );
TShiftState FinalState;
switch( dynamic_cast< TButton * >( Sender )->Tag )
{
case 0: // Union
FinalState = LeftRightShift + LeftCtrl;
break;
case 1: // Intersection
FinalState = LeftRightShift * LeftCtrl;
break;
case 2: // Difference
FinalState = LeftRightShift - LeftCtrl;
break;
}
CheckStateInfo( FinalState );
AnsiString AfterOperation = "After the last operation ";
AfterOperation += Operators[ dynamic_cast< TButton * >( Sender )->Tag ];
MemoInfo->Lines->Add( AfterOperation );
MemoInfo->Lines->Add( "---------------------" );
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -