📄 hitform.pas
字号:
unit HitForm;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Buttons;
type
TForm2 = class(TForm)
procedure FormResize(Sender: TObject);
procedure FormPaint(Sender: TObject);
private
MoveRect, TransRect: TRect;
public
procedure WmNcHitTest (var Msg: TWmNcHitTest);
message wm_NcHitTest;
end;
var
Form2: TForm2;
implementation
{$R *.DFM}
procedure TForm2.WmNcHitTest(var Msg: TWmNcHitTest);
var
Pt: TPoint;
begin
Pt := Point (Msg.XPos, Msg.YPos);
Pt := ScreenToClient (Pt);
if PtInRect (MoveRect, pt) then
Msg.Result := htCaption
else if PtInRect (TransRect, pt) then
Msg.Result := htTransparent
else
inherited;
end;
procedure TForm2.FormResize(Sender: TObject);
begin
MoveRect := Rect (20, 20,
ClientWidth - 20, ClientHeight div 2 - 10);
TransRect := Rect (20, ClientHeight div 2 + 10,
ClientWidth - 20, ClientHeight - 20);
Invalidate;
end;
procedure TForm2.FormPaint(Sender: TObject);
begin
// draw the rectangles
Canvas.Brush.Color:= Font.Color;
Canvas.FrameRect (MoveRect);
Canvas.FrameRect (TransRect);
// draw the text
Canvas.Brush.Color:= Color;
DrawText (Canvas.Handle, 'Move', 4, MoveRect,
dt_Center or dt_VCenter or dt_SingleLine);
DrawText (Canvas.Handle, 'Transparent', 11, TransRect,
dt_Center or dt_VCenter or dt_SingleLine);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -