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.
    
  • 相关阅读:
    mysql 数据库检查与修复的办法
    SECPATH透明模式下VLAN透传配置实例
    腾讯QQ所有的服务器
    AutoRuns 9.13 汉化版
    IP地址在数据库中的存储解决方案
    DNS智能解析 for windows 2003
    Windows Media Player ActiveX 控件参数
    删除nvidia右键菜单
    通过js控制cookies
    正确使用|(按位或)和||(逻辑或)
  • 原文地址:https://www.cnblogs.com/del/p/1209857.html
Copyright © 2011-2022 走看看