Condividi tramite


Hit Testing con un'area

Lo scopo del hit testing consiste nel determinare se il cursore è su un determinato oggetto, ad esempio un'icona o un pulsante. Nell'esempio seguente viene creata un'area più forma creando l'unione di due aree rettangolari. Si supponga che il punto variabile contenga la posizione del clic più recente. Il codice verifica se il punto si trova nell'area più forma. Se il punto si trova nell'area (un colpo), l'area viene riempita con un pennello rosso opaco. In caso contrario, l'area viene riempita con un pennello rosso semitraparente.

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(&region2);
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, &region1);