学习 Message(19): WM_SYSCOMMAND 消息[三] : WParam 参数


TMessage.WParam 就是 TWMSysCommand.CmdType; 这是系统命令编号.

下面程序会把 WParam 拦截, 并显示的窗体标题.

unit Unit1;



interface



uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls;



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);

var

  str: string;

begin

  case Message.CmdType of

    SC_SIZE         : str := 'SIZE         ';

    SC_MOVE         : str := 'MOVE         ';

    SC_MINIMIZE     : str := 'MINIMIZE     ';

    SC_MAXIMIZE     : str := 'MAXIMIZE     ';

    SC_NEXTWINDOW   : str := 'NEXTWINDOW   ';

    SC_PREVWINDOW   : str := 'PREVWINDOW   ';

    SC_CLOSE        : str := 'CLOSE        ';

    SC_VSCROLL      : str := 'VSCROLL      ';

    SC_HSCROLL      : str := 'HSCROLL      ';

    SC_MOUSEMENU    : str := 'MOUSEMENU    ';

    SC_KEYMENU      : str := 'KEYMENU      ';

    SC_ARRANGE      : str := 'ARRANGE      ';

    SC_RESTORE      : str := 'RESTORE      ';

    SC_TASKLIST     : str := 'TASKLIST     ';

    SC_SCREENSAVE   : str := 'SCREENSAVE   ';

    SC_HOTKEY       : str := 'HOTKEY       ';

    SC_DEFAULT      : str := 'DEFAULT      ';

    SC_MONITORPOWER : str := 'MONITORPOWER ';

    SC_CONTEXTHELP  : str := 'CONTEXTHELP  ';

    SC_SEPARATOR    : str := 'SEPARATOR    ';



    61441: str := '拖动左边框    ';

    61442: str := '拖动右边框    ';

    61443: str := '拖动上边框    ';

    61444: str := '拖动左上角    ';

    61445: str := '拖动右上角    ';

    61446: str := '拖动下边框    ';

    61447: str := '拖动左下角    ';

    61448: str := '拖动右下角    ';

    61458: str := '拖动标题栏    ';

    61558: str := '横向滚动条滚动';

    61574: str := '双击横向滚动条';

    61575: str := '纵向滚动条滚动';

    61559: str := '双击纵向滚动条';

    61587: str := '点击最小化图标';

    61490: str := '在非最大化时双击标题栏';

    61730: str := '在最大化时双击标题栏';

  end;



  if str = '' then str := IntToStr(Message.CmdType);



  Text := str;

  inherited;

end;



end.


 
   

你可能感兴趣的:(command)