【发布时间】:2021-11-13 11:07:32
【问题描述】:
我正在尝试定义一个三角形区域并检查鼠标是否在其中。我可以使用下面的代码找到鼠标是否在某个正方形区域中。我的程序需要检测三角形或更复杂形状的鼠标。
if (Mouse.CursorPos.X < 20) or (50 > tbmn.Left + tbmn.Width) or (Mouse.CursorPos.Y < 20) or (Mouse.CursorPos.Y > tbmn.Top + 60) then
begin
end;
所以基本上,我想要做的是在屏幕上的任何地方都有一个形状并检查鼠标是否在其中。
有没有一种方法可以轻松计算屏幕区域并检测其中是否存在鼠标?
【问题讨论】:
-
有多种方法可以实现这一点。你的最终目标是什么?也许您的最终目标可以通过完全不同的方法来实现。
-
@SilverWarior 我有一个分成 8 块的圆圈。每一块都是我点击的按钮。我想知道我的鼠标在哪个按钮上方。按钮是 8 个三角形。
-
如果你只需要确定一个点是否在三角形内,你当然可以天真地做,就像我在这里做的那样:stackoverflow.com/a/7224075/282848(
GetTriangleAt函数)。 -
在 GDI 的上下文中,你有
PtInRegion函数。
标签: delphi