劫获非客户消息我这儿有个例子
unit Unit1;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type
TForm1 = class(TForm)
  private
    procedure WMNCMOUSEMOVE(var Message: TMessage);message WM_NCMOUSEMOVE;
  { Private declarations }
  public
  { Public declarations }
  end;
var  Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.WMNCMOUSEMOVE(var Message: TMessage);
var  s : string;
begin
    case Message.wParam of
    HTERROR :   s := 'HTERROR';
    HTTRANSPARENT : s := 'HTTRANSPARENT';
    HTNOWHERE : s := 'HTNOWHERE';
    HTCLIENT : s := 'HTCLIENT';
    HTCAPTION : s := 'HTCAPTION';
    HTSYSMENU : s := 'HTSYSMENU';
    HTSIZE : s := 'HTSIZE';
    HTMENU : s := 'HTMENU';
    HTHSCROLL : s := 'HTHSCROLL';
    HTVSCROLL : s := 'HTVSCROLL';
    HTMINBUTTON : s := 'HTMINBUTTON';
    HTMAXBUTTON : s := 'HTMAXBUTTON';
    HTLEFT : s := 'HTLEFT';
    HTRIGHT : s := 'HTRIGHT';
    HTTOP : s := 'HTTOP';
    HTTOPLEFT : s := 'HTTOPLEFT';
    HTTOPRIGHT : s := 'HTTOPRIGHT';
    HTBOTTOM : s := 'HTBOTTOM';
    HTBOTTOMLEFT : s := 'HTBOTTOMLEFT';
    HTBOTTOMRIGHT : s :='HTBOTTOMRIGHT';
    HTBORDER : s := 'HTBORDER';
    HTOBJECT : s := 'HTOBJECT';
    HTCLOSE : s := 'HTCLOSE';
    HTHELP : s := 'HTHELP' else
    s := '';
    end;
    Form1.Caption := s;
    Message.Result := 0;
end;end.