Accueil > > > COMPOSANT BAR DE VOLUME
COMPOSANT BAR DE VOLUME
Information sur la source
Description
C'est un composant .net 2005 qui ressemble au bar de volume qui sont dans tous les lecteurs audio/vidéo. Ce code a deux intérêts: -Tout d'abord il montre aux débutants comment créer des composants possédant des évènements et des propriétés personalisés. -Il montre également comment utlisier des images transparentes pour les afficher aux dessus d'une autre grâce à un Panel. -Il permet également de comprendre l'utilisation des buffers. N'hésitez pas à laisser des commentaire pour toute remarque.
Source
- Public Class VolumeBar
- Private rect As System.Drawing.Rectangle
- Private bufferG As BufferedGraphics
- Private color As Color
- Public Event Change_Value(ByVal value As Integer) 'Déclare l'évenement de changement de valeur
- Private pos As Integer 'C'est la position de la boule orange par rapport au Panel1
- Private Sub VolumeBar_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
- pos = 50 'Par défault, le volume est au maximum
- bufferG = BufferedGraphicsManager.Current.Allocate(Panel1.CreateGraphics(), Panel1.DisplayRectangle)
- End Sub
- Private Sub Panel1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Panel1.MouseMove
- If e.Button <> Windows.Forms.MouseButtons.None Then 'si un bouton est appuyé...
- pos = e.Location.X - 4 '...alors on met à jour la variable qui
- ' contient la postion de la boule.Le -4 sert à centrer la boule par rapport à la souris
- If pos < 2 Then
- pos = 2 'Permet de ne pas sortir de la form à gauche
- ElseIf pos > 50 Then
- pos = 50 'Permet de ne pas sortir de la form à droite
- End If
- RaiseEvent Change_Value(value) 'Appel l'évènement change_value
- maj() 'Met à jour l'affichage du Panel1
- End If
- End Sub
- Private Sub maj()
- 'définition du rectangle dans lequel doit s'afficher
- 'l'image correspondant au volume sélectioné (ici dégradé d'orange)
- rect.X = 4
- rect.Y = 0
- rect.Width = pos
- rect.Height = 15
- bufferG.Graphics.Clear(Drawing.SystemColors.Control)
- bufferG.Graphics.DrawImage(bg.Images.Item(0), 4, 0)
- 'affichage l'image correspondant au volume sélectioné (ici dégradé d'orange)
- bufferG.Graphics.DrawImageUnscaledAndClipped(over.Images.Item(0), rect)
- 'dessin de l'image transparente
- bufferG.Graphics.DrawImage(bar.Images.Item(0), pos, 1)
- bufferG.Render()
- End Sub
- Property value() As Integer
- Get
- value = Int((pos - 2) / 48 * 100) 'Définie la valeur du contrôl
- End Get
- Set(ByVal val As Integer) 'Permet de changer la valeur du contrôl
- pos = Int(val / 100 * 48 + 2) 'Change la position
- maj() 'Met à jour l'affichage du Panel1
- End Set
- End Property
-
- Private Sub VolumeBar_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
- maj()
- End Sub
- End Class
Public Class VolumeBar
Private rect As System.Drawing.Rectangle
Private bufferG As BufferedGraphics
Private color As Color
Public Event Change_Value(ByVal value As Integer) 'Déclare l'évenement de changement de valeur
Private pos As Integer 'C'est la position de la boule orange par rapport au Panel1
Private Sub VolumeBar_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
pos = 50 'Par défault, le volume est au maximum
bufferG = BufferedGraphicsManager.Current.Allocate(Panel1.CreateGraphics(), Panel1.DisplayRectangle)
End Sub
Private Sub Panel1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Panel1.MouseMove
If e.Button <> Windows.Forms.MouseButtons.None Then 'si un bouton est appuyé...
pos = e.Location.X - 4 '...alors on met à jour la variable qui
' contient la postion de la boule.Le -4 sert à centrer la boule par rapport à la souris
If pos < 2 Then
pos = 2 'Permet de ne pas sortir de la form à gauche
ElseIf pos > 50 Then
pos = 50 'Permet de ne pas sortir de la form à droite
End If
RaiseEvent Change_Value(value) 'Appel l'évènement change_value
maj() 'Met à jour l'affichage du Panel1
End If
End Sub
Private Sub maj()
'définition du rectangle dans lequel doit s'afficher
'l'image correspondant au volume sélectioné (ici dégradé d'orange)
rect.X = 4
rect.Y = 0
rect.Width = pos
rect.Height = 15
bufferG.Graphics.Clear(Drawing.SystemColors.Control)
bufferG.Graphics.DrawImage(bg.Images.Item(0), 4, 0)
'affichage l'image correspondant au volume sélectioné (ici dégradé d'orange)
bufferG.Graphics.DrawImageUnscaledAndClipped(over.Images.Item(0), rect)
'dessin de l'image transparente
bufferG.Graphics.DrawImage(bar.Images.Item(0), pos, 1)
bufferG.Render()
End Sub
Property value() As Integer
Get
value = Int((pos - 2) / 48 * 100) 'Définie la valeur du contrôl
End Get
Set(ByVal val As Integer) 'Permet de changer la valeur du contrôl
pos = Int(val / 100 * 48 + 2) 'Change la position
maj() 'Met à jour l'affichage du Panel1
End Set
End Property
Private Sub VolumeBar_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
maj()
End Sub
End Class
Historique
- 30 mai 2006 12:57:24 :
- Cette mise à jour corrige le problème du clignotement ou flickering.
Merci à Stephane33 pour la réponse. Si vous avez le même problème, http://www.c2i.fr/code.aspx?IDCode=613
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Bleu transparent d'une image [ par Alexandre Gauthier ]
Salut!Je suis entrain de faire un petit programme puis je suis bloquer la:Mon programme ouvre une image dans un imagebox.. J'aimererais savoir comment
fond transparent superposé sur une image [ par lolo ]
je voudrais rendre transparent le fond d'un DataCombo que j'ai mis sur une image, pourriez vous me donner la procédure.Merci
faire devenir une fenêtre transparent [ par morganno ]
je recherche qui peux me dire comment on fait pour faire devenir une fenêtre transparent. ça veux dire je mais une image dans mon from et quand j'exéc
Ouvrir l'icone d'un raccourci dans un composant Image [ par JulienC ]
Comment ouvrir l'icone que porte un raccourci dans un controle Image, la fonction LoadPicture refusant de le faire (l'extension .lnk n'étant pas connu
pour mettre une image avec fond transparent [ par krater ]
Voila mon probleme, j'ai une image en fond et je voudrais en ajouté une autre pardessus.Or ma seconde image est ronde donc le fond "carré" est transpa
Manipulation image en .NET [ par TigerFab ]
Bonjour,J'aimerai savoir comment vous feriez pour afficher une image centrée à l'écran dont ses dimensions sont plus petites que la résolution écran..
Image d'affichage d'un composant [ par Sloridan ]
Salut, j'aimerais savoir comment on change l'image d'affichage d'un composant (pas l'icone). Mon composant hérite de TGraphicsControl donc il est
Image transparente dans Access [ par renocmoa ]
Bonjour,Je voudrais pouvoir utiliser des image aux contours transparent sur un formulaire Access. Image en .gif mais les pixel transparent sont rempli
Création d'une image à partir d'un composant Vb Net [ par dieuzorro ]
Bonjour Mon probléme est que je souhaite copier un composant situé sur une form dans une image pour sauver son apparence dans un fichier ima
Quel composant utiliser pour tableau (texte + image) [ par clasix ]
Bonjour, Je souhaite faire un tableau avec sur chaque ligne,une image en petit, et du texte multiligne...on m'a parler du listview mais je ne sais pas
|
Derniers Blogs
ASYNC/AWAIT: COMPRENDRE COMMENT CA MARCHEASYNC/AWAIT: COMPRENDRE COMMENT CA MARCHE par fathi
Tout le monde est unanime pour dire que la programmation multi-thread et asynchrone est en train de devenir un sujet incontournable. Beaucoup de choses sont arrivées avec le framework 4 pour le code parallèle (TPL, PLinq,.) et bientôt, on va avoir l...
Cliquez pour lire la suite de l'article par fathi PAS D'INTELLITRACE SUR MON SITE WEB DANS IIS !PAS D'INTELLITRACE SUR MON SITE WEB DANS IIS ! par Etienne Margraff
J'ai récemment eu un problème pour obtenir l'intelliTrace sur un site web dans IIS. Il n'y avait pas de message d'erreur, rien dans le journal d'évènement Windows, et après 3 appels à une voyante, 2 visites chez un marabou, j'ai failli me résign...
Cliquez pour lire la suite de l'article par Etienne Margraff OFFICE 365 - SHAREPOINT ONLINE, QUELQUES LIMITATIONSOFFICE 365 - SHAREPOINT ONLINE, QUELQUES LIMITATIONS par junarnoalg
De nombreuses entreprises font le choix de SharePoint Online, service fourni au travers de l'offre de Microsoft Office 365. S'il est vrai que ce choix apporte un grand nombre d'avantages; rapidité de mise en œuvre, disponibilité, large couvertu...
Cliquez pour lire la suite de l'article par junarnoalg PRéSENTATION DES API REST DE WINDOWS AZURE : LISTER LES COMPTES DE STORAGEPRéSENTATION DES API REST DE WINDOWS AZURE : LISTER LES COMPTES DE STORAGE par richardc
http://www.c2idotnet.com/articles/presentation-des-api-rest-de-windows-azure-lister-les-comptes-de-storage
Désolé pour "toto", mais c2i existait avant blogs.developpeur.org et c'est mon site "officiel" ;-) ...
Cliquez pour lire la suite de l'article par richardc
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|