学习 Message(18): WM_SYSCOMMAND 消息[二] : LParam 参数
学习 Message(18): WM_SYSCOMMAND 消息[二] : LParam 参数
涂孟超 发表于3年前
学习 Message(18): WM_SYSCOMMAND 消息[二] : LParam 参数
  • 发表于 3年前
  • 阅读 2
  • 收藏 0
  • 点赞 0
  • 评论 0

WM_SYSCOMMAND 消息的 LParam 参数是鼠标位置, 低位是 X, 高位是 Y.

下面三段程序是一样的只是使用不同类型的消息参数, 用 TWMSysCommand 更方便, 用 TMessage 更正统.

程序一:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
  protected
    procedure WMSysCommand(var Message: TWMSysCommand); message WM_SYSCOMMAND;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.WMSysCommand(var Message: TWMSysCommand);
begin
  Text := Format('%d,%d', [Message.XPos, Message.YPos]);
  inherited;
end;

end.

 
 
 
 
 

 

 

  

程序二:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
  protected
    procedure WMSysCommand(var Message: TMessage); message WM_SYSCOMMAND;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.WMSysCommand(var Message: TMessage);
begin
  Text := Format('%d,%d', [LoWord(Message.LParam), HiWord(Message.LParam)]);
  inherited;
end;

end.

 
 
 
 
 

 

 

  

程序三:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
  protected
    procedure WMSysCommand(var Message: TMessage); message WM_SYSCOMMAND;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.WMSysCommand(var Message: TMessage);
begin
  Text := Format('%d,%d', [Message.LParamLo, Message.LParamHi]);
  inherited;
end;

end.

 
 
 
 
 

 

 

  
共有 人打赏支持
粉丝 13
博文 2004
码字总数 14107
×
涂孟超
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: