C Windows API:Polygon接受鼠标输入

时间:2011-09-28 21:10:49

标签: c windows api polygon

假设我使用Polygon函数创建一个多边形,我希望它接受来自鼠标的输入(类似于一个按钮)。

我该怎么做?

修改
处理WM_LBUTTONDOWNWM_MOUSEMOVE消息,我正在使用此代码检查鼠标是否在多边形区域中:

if (LOWORD(lParam) < 375 && LOWORD(lParam) > 340 &&
    HIWORD(lParam) < 200 && HIWORD(lParam) > 90)

问题是,多边形不是矩形,而是多边形。那么我该如何检测鼠标是否只在多边形中呢?

编辑2: 我还应该注意,它只有一个三角形lol。希望这会使这更简单。

2 个答案:

答案 0 :(得分:0)

Polygon()是一个用于绘制到设备上下文的函数。因此,它不能接收inupt。你需要一个窗口控件才能做到这一点。

处理窗口中的输入并使用命中测试来检查您是否在多边形内。

答案 1 :(得分:0)

多边形不能接受输入,必须通过绘制多边形的窗口来完成。侦听WM_LBUTTONDOWN消息并查看随消息一起提供的坐标;确定坐标是否在多边形内。最简单的方法可能是在与窗口大小相同的位图上绘制多边形,并测试位图上的点以查看它是否是多边形颜色。