Forms

3.9 Creare uno sfondo per l'applicazione.
  AntoGal
(D)
Come sposso creare uno sfondo per l'applicazione?

(R)
[Access 97]
Access 97 non permette direttamente di impostare un'immagine da usare come sfondo. Ci sono due possibili strade: usare alcune API di windows per disegnare direttamente nella finestra o, più semplicemente, creare una maschera che faccia da sfondo, che va lanciata all'avvio dell'applicazione. Tale maschera deve però possedere alcune caratteristiche:

- non dovrà avere bordo, pulsantini, ecc... (eliminabili dalla finestra delle proprietà)
- avrà come sfondo un'immagine fissa o una texture (tipo pagina web, per intenderci)
- quando la maschera diventa attiva, dovrà passare immediatamente il focus ad un'altra maschera, per evitare che copra tutto
- la maschera si deve automassimizzare all'apertura dell'applicazione (a qualsiasi risoluzione) ma senza usare docmd.maximize altrimenti tutte le maschere saranno massimizzate. Bisogna giocare sulle dimensioni.

Il tutto si riassume in poche righe di codice:
Private Sub Corpo_Click()
   'evita che un clic nasconda tutte le altre maschere, passando il controllo ad un'altra finestra
   SendKeys "^{F6}"
End Sub

Private Sub Form_Click()
   SendKeys "^{F6}"
End Sub

Private Sub Form_Open(Cancel As Integer)
   Dim Larghezza, Altezza
   Application.Echo False 'disabilita l'aggiornamento dello schermo per evitare lo sfarfallio
   DoCmd.Maximize 'ingrandisce alle massime dimensioni
   Larghezza = Me.WindowWidth
   Altezza = Me.WindowHeight
   DoCmd.Restore 'ripristina dimensioni normali
   DoCmd.MoveSize 0, 0, Larghezza, Altezza
   'centra un'etichetta di testo orizzontalmente
   Me!EtiCopyright.Left = (Larghezza - Me!EtiCopyright.Width) \ 2 
   Application.Echo True 'riabilita aggiornamento
End Sub
Per ogni immagine o etichetta di testo, bisogna gestire l'evento On_Click allo stesso modo della maschera.


Se pensate di avere del materiale freeware interessante e volete pubblicarlo, allora leggete qui.