Soyez le premier à donner votre avis sur cette source.
Snippet vu 8 060 fois - Téléchargée 26 fois
Private Sub MSFlexGrid_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) On Error Resume Next Screen.MousePointer = 0 End Sub Private Sub Form_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) On Error Resume Next Dim SENS_WIDTH, SENS_HEIGHT, SENS_BOTH As Integer Dim WIDTH, HEIGHT, BOTH, WAIT, NORMAL As Integer Dim who As Integer 'définie la sensibilité SENS_WIDTH = 300 SENS_HEIGHT = 600 SENS_BOTH = 300 'les pointeurs de souris WAIT = 11 NORMAL = 0 WIDTH = 9 HEIGHT = 7 BOTH = 8 'par defaut on ne modifie rien who = NORMAL 'on redimensionne la largeur de la flexgrid suivant la position de la souris If (x > (MSFlexGrid.WIDTH + MSFlexGrid.Left - SENS_WIDTH) And x < (MSFlexGrid.WIDTH + MSFlexGrid.Left + SENS_WIDTH) And y > MSFlexGrid.Top And y < (MSFlexGrid.HEIGHT + MSFlexGrid.Top + SENS_BOTH)) Then who = WIDTH End If 'on redimensionne la hauteur de la flexgrid suivant la position de la souris If (y > (MSFlexGrid.HEIGHT + MSFlexGrid.Top - SENS_HEIGHT) And y < (MSFlexGrid.HEIGHT + MSFlexGrid.Top + SENS_HEIGHT) And x > MSFlexGrid.Top And x < (MSFlexGrid.WIDTH + MSFlexGrid.Left + SENS_BOTH)) Then If who <> WIDTH Then who = HEIGHT Else who = BOTH End If End If 'traitement seulement lorsque le bouton clic gauche est enfoncé Screen.MousePointer = who If Button = 1 Then Select Case who Case HEIGHT MSFlexGrid.HEIGHT = y - MSFlexGrid.Top Case WIDTH MSFlexGrid.WIDTH = x - MSFlexGrid.Left Case BOTH MSFlexGrid.HEIGHT = y - MSFlexGrid.Top MSFlexGrid.WIDTH = x - MSFlexGrid.Left End Select End If End Sub
PS : Utilise les API pour les positions de curseur.
BILALoch
Alors pour le point 1: C'est voulu. C'est un code que j'ai implémenté dans un de mes formulaires. Et je voulais gérer uniquement le redimensionnement en bas et à droite (ou les deux) mais ni à gauche ni en haut....
Pour les points 2 et 3: c'est lié au même probleme. => On doit régler la variable sensibilité SENS_...
Ainsi, plus on va augmenter la sensibilité, plus le redimensionnement fonctionnera avec l'acceleration de la souris, mais aussi plus le curseur se transformera en fleche trop tot :( .... et vice versa
Si quelqu'un a une astuce pour pouvoir redimensionner quelque soit l'acceleration de la souris, on pourra alors baisser le SENS_ donc corriger le point 3...
- On ne peut redimensionner que d'en bas et d'à droite ;
- Si on accelere avec la souris, la redimension ne fonctionne pas ;
- Le curseur se transforme trop tot avec le curseur en fleches et on peut redimensionner de loin ;
Voila trois points, en sens réel (trois points de ta note :P) mais aussi en sens figuré (les trois defaults de ton code)
BILALoch
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.