Marquise de sélection

Messages postés
133
Date d'inscription
jeudi 26 octobre 2000
Statut
Membre
Dernière intervention
20 juillet 2004
- - Dernière réponse : Silmon
Messages postés
85
Date d'inscription
mardi 6 janvier 2004
Statut
Membre
Derniè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)

merci d avance

MrDogbert
Afficher la suite 

5 réponses

Messages postés
200
Date d'inscription
jeudi 19 décembre 2002
Statut
Membre
Dernière intervention
18 novembre 2005
0
Merci
Désolé je ne sais pas ce qu'est une marquise de sélection

Jean-Luc
Messages postés
133
Date d'inscription
jeudi 26 octobre 2000
Statut
Membre
Dernière intervention
20 juillet 2004
1
0
Merci
l espece de rectangle en pointillés qui te permet de sélectionner tes icones sur le bureau par exemple.

MrDogbert
Messages postés
200
Date d'inscription
jeudi 19 décembre 2002
Statut
Membre
Dernière intervention
18 novembre 2005
0
Merci
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

Jean-Luc
Messages postés
133
Date d'inscription
jeudi 26 octobre 2000
Statut
Membre
Dernière intervention
20 juillet 2004
1
0
Merci
Merci bien

MrDogbert
Messages postés
85
Date d'inscription
mardi 6 janvier 2004
Statut
Membre
Dernière intervention
7 mai 2007
0
Merci
Je cherche le moyen de dessiner un focus (avec ou sans DrawFocusRect) dans un control, par exemple un bouton, une FlexGrid.

QQ a une idée SVP?