zoukankan      html  css  js  c++  java
  • 获取窗口矩形的四种方法: 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.
    
  • 相关阅读:
    洛谷P1071 潜伏者
    2019BJFU 网站设计(孙俏-web前端开发)实验代码-181002222
    反思——P1307 数字反转
    洛谷P1067 多项式输出
    湖南大学第十五届程序设计竞赛(重现赛)
    2019河北省大学生程序设计竞赛(重现赛)
    2019BJFU C++实验习题(完结)
    配置android source 在ubuntu中编译环境
    Android屏幕保持唤醒状态
    Android richtext
  • 原文地址:https://www.cnblogs.com/del/p/1209857.html
Copyright © 2011-2022 走看看