精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>● Delphi>>图形界面和窗体>>不可移动的窗口示例代码

主题:不可移动的窗口示例代码
发信人: soaringbird(假行僧*飞翔鸟)
整理人: teleme(2001-05-11 18:41:01), 站内信件
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
    OldLeft,OldTop,OldWidth,OldHeight: Integer;
  public
    { Public declarations }
  protected
    procedure WMMOVING(var msg: TMessage);message WM_MOVING;
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.WMMOVING(var msg: TMessage);
var
  rect: ^TRect;
begin
  label1.Caption := IntToStr(msg.WParam);
  rect := Pointer(msg.LParam);
  Label2.Caption := IntToStr(rect.Left);
  Label3.Caption := IntToStr(rect.Top);
  Label4.Caption := IntToStr(rect.Right);
  Label5.Caption := IntToStr(rect.Bottom);
  rect.Left := OldLeft;
  rect.Top := OldTop;
  rect.Right := rect.Left + OldWidth;
  rect.Bottom := rect.Top + OldHeight;
  
  msg.Result := 0;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  OldLeft := Left;
  OldTop := Top;
  OldWidth := Width;
  OldHeight := Height;
end;

end.

[关闭][返回]