![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Событие движения мыши по окну, в том числе по контролам на ней
Aldor_ © (2005-02-01 21:42:00)Form.OnMouseMove по понятным причинам не вызывается если на форме есть другие контролы и мышь над ними.
В голову пришел только один способ осуществления сабжа: отлов WM_NCHITTEST.
procedure OnNCHitTest(var Msg: TMessage); message WM_NCHITTEST;
...
procedure TForm1.OnNCHitTest(var Msg: TMessage);
var
Point: TPoint;
begin
Point.X := Msg.lParam and $0000FFFF;
Point.Y := Msg.lParam shr 16;
Point := ScreenToClient(Point);
//Do smth...
Msg.Result := DefWindowProc(Handle, Msg.Msg, Msg.WParam, msg.LParam);
end;
Корректно ли это? Можно ли сделать тоже самое только средствами Delphi, не затрагивая WinAPI?
Aldor_ (2005-02-03 11:42:00) [1]Up
Aldor_ (2005-02-02 21:51:00) [2]Дык все-равно ведь API. Может есть сто-нить типа TForm.MousePreview: Boolean.
Чапаев (2005-02-02 10:02:00) [3]SetCapture()?
Aldor_ (2005-02-01 23:44:00) [4]Сорри, не в тот форум. Перенесите, пожалуйста.