cs_andrebernard
Messages postés404Date d'inscriptionlundi 9 juin 2003StatutMembreDernière intervention 4 septembre 2013
-
11 sept. 2007 à 19:51
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 2018
-
14 sept. 2007 à 18:54
Bonjour
Avec l'aide de MPI,j'ai réalisé des controles que je peux déplacer pendant l'execution d'un programme.
Mais j'ai un probleme avec les combobox.
En effet, apparement ils ne gerent pas l'evenement mousemove, mousedown, mouseup
Alors comment faire pour faire bouger ce genre de controle
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 12 sept. 2007 à 07:26
Salut,
Hum, il me semble que les contrôles en question font partit d'un groupe de contrôle, non ? A ce moment là, ils gère très bien le MouseMove, MouseDown, etc., mais il faut les identifier par leurs index !
______________________________________
DarK Sidious
cs_andrebernard
Messages postés404Date d'inscriptionlundi 9 juin 2003StatutMembreDernière intervention 4 septembre 20131 12 sept. 2007 à 10:34
Merci de vos reponses
Pour PCPT
Je crois que cette methode est au dessus de mes faibles moyens.
Pour le Maitre Oui il fait bien partie d'un groupe de controle.
Mais comment fait-je pour detecter l'evenement mousemove, puisqu'il est pas dans la liste des evenements quand je clique sur ce combo de malheur ???
.
La procedure :
Private Sub ComboParametre_MouseDown(Index As Integer, Button As Integer, Shift As Integer, x As Single, y As Single)
N'existe pas dans la liste, y'a pas idée, il est bizarre ce crosoft, je ne vois vraiment pas en quoi, les combos sont des controles differents des autres ?????
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 12 sept. 2007 à 10:58
Salut,
La sub n'est pas listée dans le combo des event disponibles ??? C'est bizarre cà !
Essaye tout de même en tappant directement l'événement à la main : à moins qu'il ne s'agisse d'un ocx qui ne possède pas d'Event MouseMove, l'event doit être géré normalement !
Tu crées ton groupe de contrôle comment ? Un contrôle sur ta form avec un index à 0, et tu charge les autres par des Load(nomContrôle) ?
Tu créer un contrôle en WithEvents : private WithEvents tonControl As ComboBox ?
Tu créer les contrôles en lateBound : set tonControl = new ComboBox (ou un truc du genre, je me rappelle plus).
______________________________________
DarK Sidious
cs_andrebernard
Messages postés404Date d'inscriptionlundi 9 juin 2003StatutMembreDernière intervention 4 septembre 20131 12 sept. 2007 à 11:42
La sub n'est pas listée dans le combo des event disponibles ??? C'est bizarre cà !
J'te le fait pas dire
Bah non y'a pas du tout d'evenement souris sur ce COMBO
Je prend celui qui est donné dans la boite à outil de base.
J'ai VB6 mais j'ai pas installé le SP6, j'espere qu'iln'avaient pas fait la modif apres ....
Tu crées ton groupe de contrôle comment ? Un contrôle sur ta form avec un index à 0, et tu charge les autres par des Load(nomContrôle) ?
Oui c'est exactement ça
J'ai pas pensé à regarder si y'a pas des boutons plus évolués dans les autres OCX
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 12 sept. 2007 à 11:49
Salut,
Ok donc ca vient pas d'un usercontrol, et ca ne vient pas non plus d'un latebinding.
T'es sûr du nom de ton contrôle ? Il n'y aurait pas une sub qui s'appelle ComboParametre_MouseDown mais sans le index en paramètre ?
______________________________________
DarK Sidious
cs_andrebernard
Messages postés404Date d'inscriptionlundi 9 juin 2003StatutMembreDernière intervention 4 septembre 20131 12 sept. 2007 à 11:49
Je viens de regarder.
J'ai chargé le "microsoft forms 2.0 object library" et commme par miracle y'a a peu pret les memes controle que la boite a outil de base, mais dans ce combo la, y'a bien les evenements mouse
C'est dingue,pourquoi ils mettent pas tout de suite ceux la, si ils sont mieux ?????
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 12 sept. 2007 à 12:01
Salut,
Oula, ne les utilise pas !!! Ils ne sont pas redistribuables ! Cela oblige les futurs utilisateurs de ton programme d'avoir office d'installé !
Non non je te rassure tout de suite, le combobox de base de VB possède les événements mouseDown, mouseMove, etc. !
______________________________________
DarK Sidious
cs_andrebernard
Messages postés404Date d'inscriptionlundi 9 juin 2003StatutMembreDernière intervention 4 septembre 20131 12 sept. 2007 à 14:02
T'es sûr du nom de ton contrôle ? Il n'y aurait pas une sub qui s'appelle ComboParametre_MouseDown mais sans le index en paramètre ?
Bah pour etre sur ....
Je viens d'installer le SP6
J'ai carrement ouvert un nouveau VB avec un programme tout neuf
Je créé un combo et j'ai pas d'evenement mouse
C'est de la folie, la j'y comprend rien, comme d'habitude d'ailleur.....
cs_andrebernard
Messages postés404Date d'inscriptionlundi 9 juin 2003StatutMembreDernière intervention 4 septembre 20131 12 sept. 2007 à 18:40
Alors la, meme le maitre, c'est fait avoir .....
Chez toi aussi t'a pas d'evenement mouse sur tes combos ?????
MAis alors pourquoi Dark lui il en a, c'est pas juste .....
Vérifie bien, s'il te plait, car je sais plus quoi faire ......
A force d'installer et desinstaller VB, j'ai des copeaux autour du disque dur
Tu me sauve la vie
Bon je vais essayer de comprendre, j'ai vu un cours sur le subclassing, je vais le lire ...
cs_andrebernard
Messages postés404Date d'inscriptionlundi 9 juin 2003StatutMembreDernière intervention 4 septembre 20131 12 sept. 2007 à 19:10
Ouf me voila rassuré.
C'est pas grave j'ai maintenant un VB tout neuf qui brille
Alors la j'suis bien de ton avis, c'est de la segregation ça, ou je n'y connais rien.
Peut etre que le programmeur,qui s'occupait des combo a été viré avant de finir ...
Ce qui est encore plus dingue, c'est qu'en VBA y'en a .
C'est pas le monde a l'envers ça ...
Un giciel 2X plus cher et qui a moins que l'autre
Y'a que bilou qui peux nous faire des trucs pareils.
Bon j'arrete de réinstaller windows et de démonter ma carte mere
Je suis tombé sur un POST interessant sur le subclassing.
Mais evidement pas d'evenement mousemove
J'aurais bien rajouté ce dernier mais je ne connais pas la valeur de la constante, ou les trouvez vous les constantes ????
Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Public Const GWL_WNDPROC = (-4)
Public Const WM_LBUTTONDBLCLK = &H203
Public Const WM_LBUTTONDOWN = &H201
Public Const WM_LBUTTONUP = &H202
Public Const WM_MOUSEMOVE = ?????
Public OldProc As Long
Sub HookForm1()
OldProc = SetWindowLong(Form1.hwnd, GWL_WNDPROC, AddressOf WindowProc)
End Sub
Function WindowProc(ByVal hwnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Select Case uMsg
Case WM_LBUTTONDBLCLK
Form1.Print "Bouton gauche double click"
Case WM_LBUTTONDOWN
Form1.Print "Bouton gauche enfoncé"
Case WM_LBUTTONUP
Form1.Print "Bouton gauche rélaché"
Case WM_MOUSEMOVE
Form1.Print "Souris bouge"
End Select
WindowProc = CallWindowProc(OldProc, hwnd, uMsg, wParam, lParam)
End Function
Sub UnHookForm1()
Call SetWindowLong(Form1.hwnd, GWL_WNDPROC, OldProc)
End Sub