Bouton réduire dans systray dans la barre de titre au look xp (compatible tout windows)

Soyez le premier à donner votre avis sur cette source.

Vue 21 486 fois - Téléchargée 3 108 fois

Description

Cela faisait un bon moment que je cherchais à faire ceci, et j'ai enfin réussi, ouf !

Il s'agit d'une source qui est un mix de plusieurs sources de ce site et de vbAccelerator.com. Je n'ai par contre plus le nom des auteurs, mais je suis sûr qu'il se reonnaîtrons.

Au menu : Ajout d'un bouton dans la barre de titre de Windows, interception de ces événements pour réduire dans le systray lors d'un clic, et le fin du fin : un look complètement XP qui gère le changement des thèmes ! Normalement, cette source est compatible avec les autres versions de Windows (pas uniquement XP), mais cela reste à tester !

Bref, il s'agit d'un "vrai" bouton de barre de titre, et non un simple bouton carré à la Windows 95 tout moche rajoutté dans la barre de titre

Le code est assez simple, par contre, la classe de tracé des graphismes de Windows XP n'est pas de moi.

Le mouseOver est bien entendu géré, ainsi que le MouseDown !
Par contre, si la fenêtre n'est pas active, l'image du bouton n'est pas modifiée, ce qui est assez moche au final. Je pense modifier cà par la suite.

Source / Exemple :


Private oSystray As New SysTray

Private Sub Form_Load()

    Call dksSystrayButton1.InitializeTitleBar

End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

    'on interception des événements sur l'icône du systray
    Select Case X
        Case &H202 To &H203
        Me.Show
        Call oSystray.DeleteIcon
        Let dksSystrayButton1.Visible = True
    End Select

End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)

    Call dksSystrayButton1.TerminateTitleBar

End Sub

Private Sub uTransparentPicture1_Click()

    'on créer une icône dans le systray
    Call oSystray.CreateIcon(Me, Me.Caption)
    Me.Hide
    Let dksSystrayButton1.Visible = False

End Sub

Conclusion :


Si vous avez des idées pour inclures d'autres images de Windows, dites le moi, et j'essaierais de les mettre dans cette source. Maintenant que je sais comment récupèrer les principaux graphismes de WinXP et de tout les thèmes, je ne vais sûrement pas m'arrêter en si bon chemin ;)

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
1
Date d'inscription
vendredi 18 juillet 2008
Statut
Membre
Dernière intervention
8 octobre 2008

bjr tout le monde je suis nouveau et au niveau code je suis vraiment nul alr la question sa serai comment installe de petit code ?
merci d'avance pour les réponse !

(dsl jj'y compren rien a tout sa ! )
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
107
Oui si tu quitte l'application par VB6 et non par le programme, c'est normal que ca plante : pour ajouter le bouton dans la barre de titre, je doit sousclasser la fenêtre, et vb n'aime pas trop qu'on touche à la boucle d'événement ! Le code est stable lorsqu'il est compilé, mais en mode debug, il ne faut surtout pas le stopper brutalement, mais fermer proprement l'application par elle-même afin que le code puisse remettre les choses dans l'ordre avant de réellement se fermer !
Messages postés
335
Date d'inscription
vendredi 21 octobre 2005
Statut
Membre
Dernière intervention
8 mars 2008

les deux, j'ai même mis mon script sur ta form1 et le problème est tjrs le même. a la fin du message: la mémoire ne peut pas être "read" mais ce problème apparait quand j'arrête l'exécution du programme à partir de VB!!!
Encore, j'ai réalisé un .exe de ton programme mais celui ci n'affiche pas le bouton qui réduit en systray la fenêtre, sais tu comment palier à ça stp.

Merci
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
107
Uniquement en exécutant mon prog, ou en utilisant l'ocx dans un de tes prog ? Je viens de faire l'essai en le laissant tourner 1/4 d'heure, et je ne vois aucune variation de la mémoire.

DarK Sidious
Messages postés
335
Date d'inscription
vendredi 21 octobre 2005
Statut
Membre
Dernière intervention
8 mars 2008

Bonsoir,

en éxecutant ton programme, au bout d'un certain temps un message indiquant un soucis avec la mémoire s'affiche et ferme l'application, je ne sais pas ce que je dois faire.

Merci
Afficher les 72 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.