Каким образом можно перехватывать сообщения виндовс... а заодно, если у кого есть какие виды сообщений есть, поделитесь, если не жалко, желательно на русском языке...
|
>Roman Go
Пример: перехватываем собщение WM_NСHITTEST. Для этого пишем процедуру: interface uses *Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, *Dialogs, StdCtrls; type *TForm1 = class(TForm) * * private * *{ Private declarations } *public *procedure AllMove(var Msg:TMessage);message WM_NСHITTEST; { Public declarations } *end; var *Form1: TForm1; implementation {$R *.dfm} { TForm1 } procedure TForm1.AllMove(var Msg:TMessage); begin inherited; if Msg.Result=1 then Msg.Result:=2; end; end. Когда мы потащим форму мышью за произвольное место (если мышь не на границе формы, не на заголовке и не над кнопками системного меню, то без перехвата Msg.Result =1 ), заработает наша процедура и подменит Msg.Result на 2 (если мышь на заголовке, то без перехвата Msg.Result =2) - Windows будет обманута, решит, что мышь над заголовком и мы сможем перетащить форму за любое место. :) [s]Исправлено: Vla, 21:09 24-11-2002[/s] [s]Исправлено: Vla, 21:24 27-11-2002[/s] |
Цитата:
|
Roman Go
Цитата:
Замечение к примеру: вроде в декларации AllMove надо var добавить или не надо? |
Цитата:
|
>vasketsov
Цитата:
Без var работать не будет. Описка. :shuffle: |
Время: 22:21. |
Время: 22:21.
© OSzone.net 2001-