Peut-on faire une form en forme de sablier ?
-
mardi 7 août 2012 15:39
Toutes les réponses
-
mardi 7 août 2012 16:11Modérateur
Bonjour Joseph,
Oui c'est possible, il suffit d'une image de ce genre à ajouter aux ressources du projet et à définir en tant que BackgroundImage du formulaire:
Je l'ai fait à la va-vite (on me pardonnera)
Puis de ce code qui parle de lui même :
Public Class Form1 Public Sub New() InitializeComponent() Me.FormBorderStyle = FormBorderStyle.None 'enleve les bords 'fixe la hauteur et largeur à celles de l'image Me.Height = Me.BackgroundImage.Height Me.Width = Me.BackgroundImage.Width 'efface cette couleur de l'image, donc du formulaire (ici le noir) Me.TransparencyKey = Color.FromArgb(0, 0, 0) End Sub Private dernierpoint As Point Private Sub Form1_MouseDown(ByVal sender As Object, ByVal e As MouseEventArgs) Handles Me.MouseDown dernierpoint = New Point(e.X, e.Y) End Sub Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As MouseEventArgs) Handles Me.MouseMove If e.Button = MouseButtons.Left Then 'si on clique sur le formulaire Me.Left += e.X - dernierpoint.X 'on le déplace suivant la souris Me.Top += e.Y - dernierpoint.Y End If End Sub End Class
Bonne soirée
PS : Oui il est possible de changer la couleur en modifiant en conséquence :
Color.FromArgb(0, 0, 0)
#000 = noir
N'hésitez pas à poser des questions si un problème subsiste ou quelque chose n'est pas clair. Dans l'autre cas, veuillez indiquer que le problème est résolu. Cordialement - Best Regards. Contact
- Modifié Michel KModerator mardi 7 août 2012 16:12
-
mardi 7 août 2012 17:44
Bonsoir Michel,
Eh non, bien que je te remercie évidemment, mais ce n'est pas ça que je veux, je me suis peut être mal exprimé, ce que je cherche, c'est à donner une forme de sablier à ma form, et non pas d'afficher dessus une image...
Exemple : celui du chat "Félix" que tu connais peut être, c'est un joli matou à la robe pie noire et blanche, bien fait, qui dès son exe lancé se balade dans tout l'écran, et fait des trucs amusants, ben on ne voit que le chat, on ne voit pas la form...
Ou alors c'est fait avec une autre technique qu'une form que je ne connais pas, pas davantage que le langage utilisé...
Au plaisir, cordialement.
Joseph Attila PUSZTAY
EhJoe Logiciels Romans Ecrire -
mardi 7 août 2012 18:48Modérateur
Rebonsoir Joseph,
Avec mon exemple il est tout à fait possible d'afficher un chat uniquement sur l'écran. (Il suffit de remplacer le sablier blanc par une image de chat ne contenant pas de noir, ou changer la couleur de transparence en rouge par exemple). Il est également possible de mettre n'importe quel contrôle sur le formulaire, ce n'est pas juste une image.
Ici la seule différence entre le programme felix.exe et cet exemple est le fait que l'un soit animé l'autre non.
L'exemple permet donc de personnaliser la forme de son formulaire mais non pas de l'animer.
Pour l'animer il faut sans doute redéfinir la méthode OnPaint() et pour prendre en compte les fenêtres ouvertes il faut passer par les APIs comme FindWindow
Mais je crois effectivement qu'une telle animation n'utilise pas cette technique mais utilise justement des images animées avec prise en charge de la transparence !
Bonne soirée
N'hésitez pas à poser des questions si un problème subsiste ou quelque chose n'est pas clair. Dans l'autre cas, veuillez indiquer que le problème est résolu. Cordialement - Best Regards. Contact
-
mardi 7 août 2012 19:14Modérateur
Finalement c'était plus facile que prévu d'afficher une image animée comme ce fameux chat felix :
J'ai mis le projet "testformanim" ici
Il suffit :
-de prendre une image gif animée avec fond transparent.
-de mettre une picturebox avec BackColor=Color.Transparent
-de mettre l'arrière plan du formulaire d'une couleur unie comme avant et de modifier en conséquence TransparencyKey
Le projet final ressemble très fortement à ce que fait le programme felix à cela près qu'il ne prend pas en compte dynamiquement la fenêtre courante.
J'espère que c'est le but souhaité cette fois, sinon on restera sur un malentendu :)
Bonne soirée
N'hésitez pas à poser des questions si un problème subsiste ou quelque chose n'est pas clair. Dans l'autre cas, veuillez indiquer que le problème est résolu. Cordialement - Best Regards. Contact
-
mardi 7 août 2012 21:40
Merci Michel, ça y est, chat marche, j'avais omis d"y mettre le code, hum...
Par contre avant lancement, quand je mets l'image elle se démultiplie, mais une fois lancé chat marche est-ce normal, y a-t-il un remède ?
Bon, pour ton exemple téléchargé faut que je trouve un décompresseur de RAR, moi j'ai ZIP :o)
Quand ce sera au point je reviendrai car je voudrai faire descendre le sable en proportion du temps demandé, ah ah...
Merci encore, cordialement et à bientôt.
Joseph Attila PUSZTAY
EhJoe Logiciels Romans Ecrire -
mercredi 8 août 2012 20:10

