Je cherche a créer un effet graphique de scan sur une picturebox

hcadieu Messages postés 16 Date d'inscription mardi 28 septembre 2004 Statut Membre Dernière intervention 1 mai 2012 - 31 janv. 2006 à 12:15
hcadieu Messages postés 16 Date d'inscription mardi 28 septembre 2004 Statut Membre Dernière intervention 1 mai 2012 - 31 janv. 2006 à 15:06
Bonjour

je cherche de l'aide pour créer un effet graphique de "scan" sur une picturebox qui contient une image( pour symboliser l'analyse de cette image).

Comme si un faiceau de lumiére verte (par exemple) parcourait de haut en bas l'image puis de gauche à droite par exemple.

ceci avec doublebuffer pour eviter tout flicker de l'affichage.

Quelqu'un sait il réaliser ceci avec des appels d'api ?

merci d'avance de votre aide
cordialement

3 réponses

NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
31 janv. 2006 à 13:20
Bonjour

VB6 ou VB.NET?

Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)
Une question se pose sur le forum, pas en privé
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
31 janv. 2006 à 14:07
Bonjour,

le faisceau est représenté par une Shape qui se déplace sur l'image

on peut jouer sur les paramètres (en rouge)

(Vb6)





Option Explicit



Rem une PictureBox

Rem une Shape dans la PictureBox

Rem 1 bouton pour Lancer

Rem 1 bouton pour Stopper



Const nScan = 4

Dim Bool As Boolean



Private Sub Form_Load()

Picture1.ScaleMode = 3

Shape1.BackStyle = 1

Shape1.BorderStyle = 0

Shape1.BackColor = RGB(255, 255, 255)

Shape1.Width = 10

Shape1.Height = nScan

Shape1.Visible = False

End Sub



Private Sub Command1_Click()

Dim X As Long

Dim Y As Long

Dim i As Long



Bool = False

Shape1.Visible = True



For Y = 0 To Picture1.ScaleHeight Step nScan

For X = 0 To Picture1.ScaleWidth - 1

Shape1.Move X, Y

DoEvents

For i = 1 To 200000: Next

If Bool Then Exit For

Next

If Bool Then Exit For

Next

FIN:

Shape1.Visible = False



End Sub



Private Sub Command2_Click()

Bool = True

End Sub



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

Bool = True

End Sub




Daniel
0
hcadieu Messages postés 16 Date d'inscription mardi 28 septembre 2004 Statut Membre Dernière intervention 1 mai 2012
31 janv. 2006 à 15:06
Merci Daniel pour ton code

cela fonctionne mais j'ai un effet de scintillement que je voudrai eviter..
Pour cela je preferrerai un code avec double buffer et appel d'api

tu as une idée ?
0
Rejoignez-nous