none
Peut-on faire une form en forme de sablier ? RRS feed

Réponses

  • 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

    • Marqué comme réponse EhJoe mardi 7 août 2012 21:40
    • Non marqué comme réponse EhJoe mardi 7 août 2012 21:40
    • Marqué comme réponse EhJoe mardi 7 août 2012 21:40
    • Non marqué comme réponse EhJoe mardi 7 août 2012 21:41
    • Marqué comme réponse EhJoe mardi 7 août 2012 21:42
    mardi 7 août 2012 19:14

Toutes les réponses

  • 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 K mardi 7 août 2012 16:12
    mardi 7 août 2012 16:11
  • 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 17:44
  • 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 18:48
  • 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

    • Marqué comme réponse EhJoe mardi 7 août 2012 21:40
    • Non marqué comme réponse EhJoe mardi 7 août 2012 21:40
    • Marqué comme réponse EhJoe mardi 7 août 2012 21:40
    • Non marqué comme réponse EhJoe mardi 7 août 2012 21:41
    • Marqué comme réponse EhJoe mardi 7 août 2012 21:42
    mardi 7 août 2012 19:14
  • 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


    • Marqué comme réponse EhJoe mardi 7 août 2012 21:40
    • Non marqué comme réponse EhJoe mardi 7 août 2012 21:41
    mardi 7 août 2012 21:40
  • Bonsoir Michel,

    Je t'ai envoyé un mail, mais si l'adresse est encore bonne ...k hotmail fr ?

    Sinon, merci (voir en bas), de m'indiquer où envoyer :o)

    Cordialement.



    Joseph Attila PUSZTAY
    EhJoe       Logiciels       Romans       Ecrire


    mercredi 8 août 2012 20:10