arbomont
Messages postés57Date d'inscriptionmardi 21 septembre 2004StatutMembreDernière intervention 3 février 2014
-
30 nov. 2004 à 14:12
dthuler
Messages postés121Date d'inscriptiondimanche 9 mars 2003StatutMembreDernière intervention29 avril 2009
-
30 nov. 2004 à 17:01
Dans mon programme j'ai un menu deroulant qui est activé lors d'un clic droit de la souris, en voici le code
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 2 Then PopupMenu mnuFile
mnuFile.Visible = False
'Met le menu Fichier en invisible
J'aimerai que ce menu se deroule uniquement quand le pointeur de la souris est positionné sur un objet, par exemple sur un objet "shape" ou une obet "picturebox"
Comment faire ???
dthuler
Messages postés121Date d'inscriptiondimanche 9 mars 2003StatutMembreDernière intervention29 avril 2009 30 nov. 2004 à 17:01
C'est plus tordu que ça pour les textbox à cause d'un system event lié au textbox...
Voici un bout de code qui devrait faire ton affaire:
Private Declare Function LockWindowUpdate Lib "User32" (ByVal hWndLock As Long) As Long
Private Sub Text1_MouseDown (Button As Integer, Shift As Integer, X As Single, Y As Single)
'Une textbox désactivée ne provoque pas le menu contextuel système
If Button=vbRightButton Then
'Evite l'affichage de la textbox en gris
LockWindowUpdate Text1.hWnd
Text1.Enabled = False
'Mise à jour des infos système
DoEvents
PopupMenu mnuFile
Text1.Enabled = True
'On remet tout en ordre...
LockWindowUpdate 0&
End If
End Sub