![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Можно ли назначать SetWindowRgn для TShape? [D6, WinXP]
amochkin © (2002-07-09 07:05:00)Господа!
Собственно, сабж.
На TShape.Canvas назначить регион - без проблем. Однако, на мышовые события это никоим образом не влияет.
Может кто-то сталкивался с похожей задачей: прорисовать фигуру свободной формы (я это сделал на TShape) и добиться чтобы OnMouseEnter, OnMouseLeave, OnMouseDown отрабатывались только на этой фигуре (а не на контроле, на котором фигура нарисована).
Что касается OnMouseDown, проблема легко решилась переписыванием обработчика события с условием через PtInRegion.
Но OnMouseLeave и OnMouseEnter просто стали главной головной болью :)
reonid (2002-07-09 10:34:00) [1]TShape - он же не WinControl, регион ему не назначишь.
Насколько я помню, это делается через обработку сообщения CM_HITTEST;
procedure TMyShape.CMHitTest(var Message: TCMHitTest);
begin
with Message do Result := Integer( PtInRegion(HRgn, XPos, YPos));
end;