Réponse acceptée !
Bonjour,
Je viens de retrouver sur ma machine un petit bout de code qui, si je me rappelle bien, avait été écrit par Renfields :
Sur une Form :
- une picturebos nommée hublot
- une picturebox nommée Picture1
- un timer nommé Timer
Private Declare Function CreateEllipticRgn Lib "gdi32.dll" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
Private Declare Function SelectClipRgn Lib "gdi32.dll" (ByVal hdc As Long, ByVal hRgn As Long) As Long
Private Declare Function DeleteObject Lib "gdi32.dll" (ByVal hObject As Long) As Long
Private Sub Form_Activate()
Dim hRgn As Long
With Me
.ScaleMode = vbPixels
.Move 0, 0, Screen.Width / 2, Screen.Height / 2
End With
With Picture1
.ScaleMode = vbPixels
.Move Me.ScaleWidth / 4, Me.ScaleHeight / 4, 200, 200
End With
With hublot
.ScaleMode = vbPixels
.BackColor = &HC0C0&
.Move 10, 10, 100, 100
End With
Set hublot.Container = Picture1
hublot.BackColor = vbYellow
Timer1.Interval = 50
Timer1.Enabled = True
hRgn = CreateEllipticRgn(0, 0, hublot.ScaleWidth, hublot.ScaleHeight)
SelectClipRgn hublot.hdc, hRgn
DoEvents
hublot.Line (0, 0)-(100, 100), vbWhite, BF
DeleteObject hRgn
End Sub
Private Sub Timer1_Timer()
Static nSize As Long
nSize = nSize + 1
If nSize = 100 Then
hublot.Line (0, 0)-(100, 100), vbWhite, BF
nSize = 0
End If
hublot.Line (0, (100 - nSize) * hublot.ScaleHeight / 100)-(hublot.ScaleWidth, hublot.ScaleHeight), vbBlue, BF
End Sub