Delphi 获取窗口矩形的四种方法: GetClientRect、ClientRect、GetWindowRect、BoundsRect

2023-01-01 09:12:18 作者:admin

本文整理自网络,侵删。

 获取窗口矩形的四种方法: GetClientRect、ClientRect、GetWindowRect、BoundsRect其中 GetClientRect、ClientRect 获取的是窗口的客户区矩形;
GetWindowRect、BoundsRect 是获取窗口矩形;
另外, 还有一个 Windows.GetClientRect(使用方法同 GetWindowRect, 它们都是 API 函数),这里使用的 GetClientRect 是 Forms.GetClientRect.
本例效果图:

unit Unit1;
interface
uses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, StdCtrls;
type  TForm1 = class(TForm)    procedure FormCreate(Sender: TObject);    procedure FormPaint(Sender: TObject);    procedure FormResize(Sender: TObject);  end;
var  Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);begin  Color := clWhite;end;
procedure TForm1.FormPaint(Sender: TObject);const  str = 'L:%d; T:%d; R:%d; B:%d - ';var  R1,R2,R3,R4: TRect;  buf: array[Byte] of char;  x,y,h: Integer;begin  R1 := GetClientRect;  R2 := Self.ClientRect;  GetWindowRect(Handle, R3);  R4 := Self.BoundsRect;
  x := 10;  y := 10;  h := 10;
  Randomize;  Canvas.Font.Color := Random($FFFFFF);  wvsprintf(buf, str + 'GetClientRect', @R1);  Canvas.TextOut(x, y, buf);  y := y + h + Canvas.TextHeight(buf);
  wvsprintf(buf, str + 'Self.ClientRect', @R2);  Canvas.TextOut(x, y, buf);  y := y + h + Canvas.TextHeight(buf);
  Canvas.Font.Color := Random($FFFFFF);  wvsprintf(buf, str + 'GetWindowRect', @R3);  Canvas.TextOut(x, y, buf);  y := y + h + Canvas.TextHeight(buf);
  wvsprintf(buf, str + 'Self.BoundsRect', @R4);  Canvas.TextOut(x, y, buf);end;
procedure TForm1.FormResize(Sender: TObject);begin  Repaint;end;
end.

相关阅读 >>

Delphi wm_copydata 用法

Delphi实现身份证号码15到18位升位算法

Delphi 正则表达式tperlregex 详解

Delphi app检测智能手机震动

Delphi console程序中一种定时方法

Delphi 2009 泛型容器单元(generics.collections)[4]: tdictionary<t>

Delphi console程序中一种定时方法

Delphi 将汉字翻译成拼音缩写的函数

Delphi制作外挂的操作技巧

键盘钩子,鼠标钩子,Delphi环境下编写的键盘鼠标钩子的程序示例

更多相关阅读请进入《Delphi》频道 >>



在线咨询 拨打电话