Как отловить сообщения от неклиентской части моей формы, такой, например, как заголовок?
Своим опытом делится Олег Кулабухов:
Нижеприведенный пример показывает, как отследить перемещения мыши на неклиентской части формы.
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. |
[001915]