elion
Messages postés3Date d'inscriptionlundi 19 août 2002StatutMembreDernière intervention21 août 2002
-
21 août 2002 à 09:39
rebixav
Messages postés130Date d'inscriptiondimanche 16 décembre 2007StatutMembreDernière intervention28 janvier 2013
-
4 déc. 2012 à 13:57
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
rebixav
Messages postés130Date d'inscriptiondimanche 16 décembre 2007StatutMembreDernière intervention28 janvier 2013 4 déc. 2012 à 13:57
Bon ben moi c'est 100% = ok avec une seul astuce, (la tienne LuTo)
"Cette pitite source propose une solution simple pour eviter ca en simulant le relachement du bouton gauche de la sourie"
et rien d'autre !
soit :
Public Declare Sub mouse_event Lib "user32" (ByVal dwflags As Long, _
ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, _
ByVal dwExtraInfo As Long)
Public Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Public Type POINTAPI
X As Long
Y As Long
End Type
Dim position_souris As POINTAPI
GetCursorPos position_sourisX% position_souris.X: Y% position_souris.Y
Call mouse_event(MOUSEEVENTF_LEFTUP, X%, Y%, 0, 0) 'on relache le bouton
en faite dés le relâchement du clic gauche de la souris le redimensionnement s'arrete !
et cela marche aussi bien au haut que en bas, à gauche et à droite !!!
en faite moi j'ai même utilisé qu'une seul ligne, puisque j'ai déjà une procédure qui s'occupe de la gestion de la souris !
...
Private Sub Form_Resize()
ecran.Top Client_poste.Top + Client_poste.Height + 5: ecran.Left 5
If zz_CD.Width \ Screen.TwipsPerPixelY < ecran.Left + 200 Then zz_CD.Width = (ecran.Left + 200) * Screen.TwipsPerPixelY: choix% = 1
If zz_CD.Height \ Screen.TwipsPerPixelY < ecran.Top + 150 + Stop_clavier_souris.Height Then zz_CD.Height = (ecran.Top + 150 + Stop_clavier_souris.Height) * Screen.TwipsPerPixelY: choix% = 1
If choix% = 1 Then Sendmouse , , Relache_gauche_: Exit Sub '<<<<<<<<<<<<<<<<<<<<< elle est là !!!!
...
...
...
etc.
a plus les petites souris :)
cs_BadNews
Messages postés98Date d'inscriptionsamedi 30 novembre 2002StatutMembreDernière intervention10 septembre 20071 6 juin 2004 à 09:17
Cool, merci!
Pour enlever complètement les clignotements, remplacez:
If .Width < LargeurMin And .Height < HauteurMin Then
Call mouse_event(MOUSEEVENTF_ABSOLUTE + MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
End If
par:
If .Width < LargeurMin Or .Height < HauteurMin Then
Call mouse_event(MOUSEEVENTF_ABSOLUTE + MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
End If
Bref, remplacez le "And" par "Or"
Ça éviteras les clignotements. Cepandant, si la largeur arrive à sa limit et que l'hauteur (ou vise verça) n'y est pas, l'évènement MOUSSEEVENTF_ABSOLUTE auras lieu donc le bouton de la sourie seras relâché.
Je trouve ça toujours mieux que le clignotement.
Merci encore.
cs_ramg
Messages postés14Date d'inscriptionvendredi 6 juin 2003StatutMembreDernière intervention 6 février 2006 16 avril 2004 à 17:29
Excellent pile poil ce qu'il me fallait
Chez moi ça 'clignote' encore quand je resize sur la largeur ou la hauteur. Cependant quand je resize à partir du coin bas à droite pas de prob.
jockos
Messages postés321Date d'inscriptiondimanche 22 octobre 2000StatutMembreDernière intervention14 mai 20052 9 avril 2003 à 03:06
ouais, j'ai proposé une nouvelle source, qui améliore grandement cela...
C'est du vrai Resizing... il ne faut pas utiliser la méthode de l"évenement Resize d'une forme, mais utiliser la technique de sous-classement, c'est à dire intercepter directempent le message qui arrive à Windows comme quoi la fenetre est redimensionné...
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 8 avril 2003 à 19:47
Nota :
Cette méthode ne fonctionne que si vous redimensionnez vos feuilles en les tirant par les bords droit (pour la largeur) et bas (pour la hauteur).
Si vous utilisez les bords gauche ou du haut, votre forme fait un bond !
vala
jockos
Messages postés321Date d'inscriptiondimanche 22 octobre 2000StatutMembreDernière intervention14 mai 20052 5 févr. 2003 à 12:49
Super cool même...
elion
Messages postés3Date d'inscriptionlundi 19 août 2002StatutMembreDernière intervention21 août 2002 21 août 2002 à 09:39
4 déc. 2012 à 13:57
"Cette pitite source propose une solution simple pour eviter ca en simulant le relachement du bouton gauche de la sourie"
et rien d'autre !
soit :
Public Declare Sub mouse_event Lib "user32" (ByVal dwflags As Long, _
ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, _
ByVal dwExtraInfo As Long)
Public Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Public Type POINTAPI
X As Long
Y As Long
End Type
Dim position_souris As POINTAPI
GetCursorPos position_sourisX% position_souris.X: Y% position_souris.Y
Call mouse_event(MOUSEEVENTF_LEFTUP, X%, Y%, 0, 0) 'on relache le bouton
en faite dés le relâchement du clic gauche de la souris le redimensionnement s'arrete !
et cela marche aussi bien au haut que en bas, à gauche et à droite !!!
en faite moi j'ai même utilisé qu'une seul ligne, puisque j'ai déjà une procédure qui s'occupe de la gestion de la souris !
...
Private Sub Form_Resize()
ecran.Top Client_poste.Top + Client_poste.Height + 5: ecran.Left 5
If zz_CD.Width \ Screen.TwipsPerPixelY < ecran.Left + 200 Then zz_CD.Width = (ecran.Left + 200) * Screen.TwipsPerPixelY: choix% = 1
If zz_CD.Height \ Screen.TwipsPerPixelY < ecran.Top + 150 + Stop_clavier_souris.Height Then zz_CD.Height = (ecran.Top + 150 + Stop_clavier_souris.Height) * Screen.TwipsPerPixelY: choix% = 1
If choix% = 1 Then Sendmouse , , Relache_gauche_: Exit Sub '<<<<<<<<<<<<<<<<<<<<< elle est là !!!!
...
...
...
etc.
a plus les petites souris :)
6 juin 2004 à 09:17
Pour enlever complètement les clignotements, remplacez:
If .Width < LargeurMin And .Height < HauteurMin Then
Call mouse_event(MOUSEEVENTF_ABSOLUTE + MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
End If
par:
If .Width < LargeurMin Or .Height < HauteurMin Then
Call mouse_event(MOUSEEVENTF_ABSOLUTE + MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
End If
Bref, remplacez le "And" par "Or"
Ça éviteras les clignotements. Cepandant, si la largeur arrive à sa limit et que l'hauteur (ou vise verça) n'y est pas, l'évènement MOUSSEEVENTF_ABSOLUTE auras lieu donc le bouton de la sourie seras relâché.
Je trouve ça toujours mieux que le clignotement.
Merci encore.
16 avril 2004 à 17:29
Chez moi ça 'clignote' encore quand je resize sur la largeur ou la hauteur. Cependant quand je resize à partir du coin bas à droite pas de prob.
9 avril 2003 à 03:06
C'est du vrai Resizing... il ne faut pas utiliser la méthode de l"évenement Resize d'une forme, mais utiliser la technique de sous-classement, c'est à dire intercepter directempent le message qui arrive à Windows comme quoi la fenetre est redimensionné...
8 avril 2003 à 19:47
Cette méthode ne fonctionne que si vous redimensionnez vos feuilles en les tirant par les bords droit (pour la largeur) et bas (pour la hauteur).
Si vous utilisez les bords gauche ou du haut, votre forme fait un bond !
vala
5 févr. 2003 à 12:49
21 août 2002 à 09:39