CISA FotoGallery

Statistiche

Tot. visite contenuti : 885926
Home Articoli tecnici Forms Immagini con aree clickabili

Immagini con aree clickabili

 Prendo spunto da un post ("Mappe cliccabili") per proporre una soluzione semplice e veloce finalizzata ad individuare un'area di una immagine e agire di conseguenza.
L'esempio classico è la cartina dell'Italia. Si vorrebbe poter cliccare su di una regione e far partire un codice che tenga conto della regione selezionata...un po' come avviene nelle pagine html.
In Access non è possibile selezionare un'area di un'immagine a meno di sovrapporvi una label trasparente e di forma rettangolare o quadrata e intercettare il click su detta label.
Inoltre le immagini in Access non espongono un hdc.
Una soluzione potrebbe essere quella di usare lo sfondo di una maschera che, questa volta, e grazie all'api GetWindowDC mi permette di ricavare l'hdc della maschera stessa. L'immagine verrà posta sullo sfondo e si userà l'evento clic del corpo.
Rimane il problema dell'area delimitata.
Come abbiamo visto non è possibile delimitare un'area di forma irregolare...
La soluzione me l'ha data proprio l'autore del post "mappe cliccabili".
Perchè non usare il colore dell'area?
A questo punto è stato semplice. Grazie a tre api il gioco è fatto.
GetPixel restituisce il colore del pixel di una determinata posizione; GetCursorPos restituisce la posizione del cursore GetWindowDC mi restituisce l'handle della maschera, indispensabile per delimitare il contesto di GetPixel.
A questo punto ottengo il colore che si trova proprio sotto il clic del mouse e, avendo avuto l'accortezza di creare una cartina con colori solidi diversi ma uniformi per ciascuna regione, posso associare il valore colore restituito ad una funzione o codice diversi.

 

Attachments:
Download this file (189.zip)Allegato384 Kb