Grafica e dissolvenze

venerdì 28 novembre 2008 - 12.18

gabriel81 Profilo | Junior Member

Ciao a tutti!
Qualcuno ha qualche linka tutorial su come realizzare le dissolvenze in apertura e chiusura dei form e grafica glossy in generale??

grazie 1000
http://www.myspace.com/madmack1981

aiedail92 Profilo | Expert

Ciao

Per quanto riguarda le dissolvenze puoi usare l'API di Windows AnimateWindow:

[DllImport("user32.dll")] static extern bool AnimateWindow(IntPtr hwnd, int dwTime, AnimateFlags dwFlags); [Flags()] enum AnimateFlags { AW_HOR_POSITIVE = 0x01, AW_HOR_NEGATIVE = 0x02, AW_VER_POSITIVE = 0x04, AW_VER_NEGATIVE = 0x08, AW_CENTER = 0x10, AW_HIDE = 0x010000, AW_ACTIVATE = 0x020000, AW_SLIDE = 0x040000, AW_BLEND = 0x080000 }

Per mostrare una finestra devi passare l'handle di sistema (Proprietà Handle del controllo), il periodo di animazione, e quindi il tipo di animazione. Ti rimando alla guida su MSDN per i tipi di animazione:

http://msdn.microsoft.com/it-it/library/ms632669(en-us).aspx

Per nascondere la finestra anziché mostrarla, devi eseguire un or con AW_HIDE sul parametro dwFlags.

Luca

gabriel81 Profilo | Junior Member

Come faccio ad usare la funzione?

Su msdn non ci sono esempi... scusa se sono tardo..
inoltre non mi accetta imports "user32.dll"


http://www.myspace.com/madmack1981

aiedail92 Profilo | Expert

Il primo parametro, hwnd, deve essere l'handle di sistema della finestra, che puoi ottenere con la proprietà Handle.

Il secondo parametro, dwTime, indica il numero di millisecondi per cui deve durare l'applicazione.

Il terzo parametro deve essere una combinazione bit a bit (con l'operatore or) delle costanti dell'enum AnimateFlags che servono a stabilire il tipo di animazione e se la finestra deve essere mostrata o nascosta (per nasconderla devi combinare il flag AW_HIDE)

Perché la funzione funzioni () però la finestra non deve essere già visibile.

Luca

gabriel81 Profilo | Junior Member

provo a postare del codice.
Il form padre ha una sub che apre i form:

Public Sub ApriForm(ByVal Classe As Object)
Classe.MdiParent = Me
'messo qui può andare?
'AnimateWindow(classe.Handle, 1000, (uint)AnimateWindowFlags.AW_BLEND)
Classe.Show()

In testa al codice ho messo:

Imports System.Windows.Forms
<DllImport("user32.dll") >

ma mi dice che gli manca qualcosa...


http://www.myspace.com/madmack1981

aiedail92 Profilo | Expert

Messo in quel posto dovrebbe andare bene. Probabilmente quello che manca è una imports per il namespace System.Runtime.InteropServices. Prova ad aggiungere questo in cima al file:

Imports System.Runtime.InteropServices

Luca

gabriel81 Profilo | Junior Member

Ok, ora funziona! grazie.
Ora devo solo capire quali voci dell'enumeratore usare per creare quello che voglio, grazie di nuovo!
http://www.myspace.com/madmack1981
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5