使用区域进行命中测试
命中测试的目的是确定光标是否位于指定对象(例如图标或按钮)上。 以下示例通过形成两个矩形区域的并集来创建加号形状区域。 假设变量 点 包含最近单击的位置。 代码检查 点 是否位于加号形状区域中。 如果 point 位于命中) (区域中,则该区域使用不透明的红色画笔填充。 否则,将使用半透明红色画笔填充该区域。
Point point(60, 10);
// Assume that the variable "point" contains the location
// of the most recent click.
// To simulate a hit, assign (60, 10) to point.
// To simulate a miss, assign (0, 0) to point.
SolidBrush solidBrush(Color());
Region region1(Rect(50, 0, 50, 150));
Region region2(Rect(0, 50, 150, 50));
// Create a plus-shaped region by forming the union of region1 and region2.
// The union replaces region1.
region1.Union(®ion2);
if(region1.IsVisible(point, &graphics))
{
// The point is in the region. Use an opaque brush.
solidBrush.SetColor(Color(255, 255, 0, 0));
}
else
{
// The point is not in the region. Use a semitransparent brush.
solidBrush.SetColor(Color(64, 255, 0, 0));
}
graphics.FillRegion(&solidBrush, ®ion1);