MrDogbert
Messages postés133Date d'inscriptionjeudi 26 octobre 2000StatutMembreDernière intervention20 juillet 2004
-
12 juin 2003 à 12:15
Silmon
Messages postés85Date d'inscriptionmardi 6 janvier 2004StatutMembreDernière intervention 7 mai 2007
-
5 avril 2006 à 15:04
Comment faire pour dessiner une marquise de sélection?
(pas de bidouille avec un objet shape en pointillé SVP, une vraie marquise)
Delbeke
Messages postés200Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention18 novembre 2005 12 juin 2003 à 18:56
On utilise l'api DrawFocusRect
Pace un picturebox sur une feuille
puis colle le source suivant
Option Explicit
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Declare Function DrawFocusRect Lib "user32" (ByVal hdc As Long, lpRect As RECT) As Long
Dim DrawRct As RECT
Dim Drawing As Boolean
Private Sub Form_Load()
Picture1.AutoRedraw = False
Picture1.ScaleMode = vbPixels
End Sub
Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim lRet As Long
If (Button And 1) = 1 Then
DrawRct.Left = X
DrawRct.Top = Y
DrawRct.Right = X
DrawRct.Bottom = Y
lRet = DrawFocusRect(Picture1.hdc, DrawRct)
Drawing = True
End If
End Sub
Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim lRet As Long
If Drawing Then
lRet = DrawFocusRect(Picture1.hdc, DrawRct)
DrawRct.Right = X
DrawRct.Bottom = Y
lRet = DrawFocusRect(Picture1.hdc, DrawRct)
End If
End Sub
Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim lRet As Long
If Drawing Then
lRet = DrawFocusRect(Picture1.hdc, DrawRct)
Drawing = False
End If
End Sub