GEREZ LES EVENEMENTS MOUSE_WHEEL, MOUSE_ENTER, DBL_CLICK, MOUSE_LEAVE .... ETC

violent_ken Messages postés 1812 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 26 octobre 2010 - 17 avril 2007 à 22:55
 Utilisateur anonyme - 20 févr. 2011 à 19:34
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/42322-gerez-les-evenements-mouse-wheel-mouse-enter-dbl-click-mouse-leave-etc-pour-tous-vos-controles-en-2-lignes-de-code

Utilisateur anonyme
20 févr. 2011 à 19:34
Excellent
andalo Messages postés 102 Date d'inscription lundi 23 avril 2007 Statut Membre Dernière intervention 20 octobre 2012
12 juin 2008 à 16:47
Désolé ca fonctionee bien egalement, mon souci provient du fait que je veux savoir si l'utilisateur appui sur les fleches gauches, droite, haut, ou bas et que mon controle perd le focus du coup.
andalo Messages postés 102 Date d'inscription lundi 23 avril 2007 Statut Membre Dernière intervention 20 octobre 2012
12 juin 2008 à 16:34
hey mais je peux noter!
Je sais que je suis exigeant mais l'evenement keydown est il fonctionel ou c'est moi qui ne sait pas l'activer?
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
12 juin 2008 à 14:44
pas de danger avec le subclassing en mode compilé.
dangereux en mode IDE si on lui enlève la procédure de gestion de messages (Pause de l'IDE, par exemple)

des solutions de replis existent, subclasser via une dll, ou en injectant un peu d'ASM:
http://www.vbfrance.com/codes/MODULE-SUBCLASSER_38442.aspx
andalo Messages postés 102 Date d'inscription lundi 23 avril 2007 Statut Membre Dernière intervention 20 octobre 2012
12 juin 2008 à 14:38
Ah ben bravo, je n'ai pas le niveau (ni le courage et le temps) pour tout piger à cette source, mais je me regale à scroller tout ce que je peux scroller, un bonheur!!
Cependant en debugage(j'ai mis un taquet sur un evenement mouse_wheel) ca m'a etteint le pc!!! Il ya quelque commentaire inqietant, sur la source j'espere ne pas faire planter les pc des personnes qui vont se servir de mon appli!!
Malgré les craintes si je pouvais mettre un note j'hesiterai entre un 12 ou un 13 sur 10
violent_ken Messages postés 1812 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 26 octobre 2010 2
17 mai 2007 à 17:23
Hop, je poste toute ma série de contrôles stylés XP avec ce UserControl inclus (débugé et gestion de nouveaux paramètres comme Shift...) :
http://www.vbfrance.com/code.aspx?ID=42726

@+
violent_ken Messages postés 1812 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 26 octobre 2010 2
24 avril 2007 à 15:18
Merci pour le commentaire !

@+
cs_JLN Messages postés 371 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 17 juin 2013
23 avril 2007 à 17:37
Bon boulot, et surtout merci de faire partager... Et dire que tous ces commentaires contribus à faire avancer le shimili... chilmi... schmilbili... enfin ce truc quoi !

@+ JLN
violent_ken Messages postés 1812 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 26 octobre 2010 2
20 avril 2007 à 19:52
Salut, en fait tout les events peuvent être utile (si le composant ne les possède pas, notamment les click mouse_middle et double_click non gauche).


Mais dis moi, comment gère t-on le MouseLeave sans subclassing et sans Timer ??

@+
cs_moustachu Messages postés 1079 Date d'inscription jeudi 14 novembre 2002 Statut Membre Dernière intervention 1 janvier 2012
20 avril 2007 à 19:44
Bonjour,

Jolie source.. L'intérêt du subclassing ici est surtout pour mousewheel, car le MouseLeave se gère très bien sans.(et sans timer ;o))

++
Moustachu
violent_ken Messages postés 1812 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 26 octobre 2010 2
18 avril 2007 à 19:49
mdr ;)

@+ ^^
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
18 avril 2007 à 19:47
Quelle efficacité ! Il ira loin notre ultra_violent_ken... enfin il ira au moins jusqu'a Balrog apres faut voir :p

Tu connais pas la legende du googlebot mangeur de bande passante ?
je vous la raconterait un soir de pleine lune :p

B@nne prog
violent_ken Messages postés 1812 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 26 octobre 2010 2
18 avril 2007 à 19:29
Renfield ==> Merci ;)

EB ==> oui bien sur, çà consomme des ressources, mais c'est négligeable (il me semble) comparé à un timer ^^... parce que généralement, les usercontrol gérant le MOUSE_LEAVE en utilisent un ;)
Pour le module de classe, pourquoi pas oui, et pour l'interface j'ai tout ce qu'il faut pour le faire (thx Renfield^^) mais faut déjà que je le fasse sur une autre de mes sources ! Enfin je ferai peut être une MAJ.

Le choix de l'usercontrol est principalement motivé pour la facilité d'utilisation. Pour l'user novice, on pose la "souris" (super bitmap de mon ocx...-__-) sur la form et puis c'est bon. Mais certes c'est gourmand, plus qu'une classe.



Pour le module, en fait hier je voulais faire complètement autre chose et j'ai eu l'idée de cette source ^^ Donc je l'ai gardé (d'ailleurs il se nomme mdlProcs je viens de voir, il était destiné à la WindowProc à l'origine).

MouseX et MouseY, lol oui, je vais le faire, mais j'ai bouclé çà à l'arrache hier (pas eu le temps de décortiquer le lParam^^).

"Petit detail ausssi tu fais :...." ==> euh, ERF ;) je corrige ;)



Mais juste une question : pourquoi as tu peur des googlebots ????
^^

@+
MadM@tt Messages postés 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 1
18 avril 2007 à 18:28
Ahhh autant pour moi ^^, j'ai pas regardé le passage concerné.
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
18 avril 2007 à 17:08
MadM@tt> Jettes un oeuil sur le "select case" tu vas comprendre !
MadM@tt Messages postés 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 1
18 avril 2007 à 15:56
La WindowProc d'un objet sous classé est toujours appelée ? (ou alors j'ai mal compris)
Mais pourquoi (tant de haine) ? c'est quand meme le principe du sous classement d'intercepter les messages et de choisir de les faire suivre ou pas au controle sous classé non ?
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
18 avril 2007 à 08:49
Bon je rajouterais pour bien faire (enfin pour faire a ma façon on va dire ça comme ça :p) je mettrais les def du module dans l'usercontrol (on ce debarrase du module) on ajoute les mousex mousey dans tout les evenements et surtout on fait une interface car les raiseevents c'est pas tip top.

Petit detail ausssi tu fais :

'appel de la routine standard pour les autres messages
WindowProc = CallWindowProc(OldProc, hWnd, uMsg, wParam, lParam)

Mais en realite cette fonction est TOUJOURS appelée donc reste a voir si tu veux changer la valeur de retour de la fonction.

@+
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
18 avril 2007 à 08:39
Ahahaha le subclassing ne consomme pas de ressource ? mais t'as vu ça ou ? Bien au contraire c'est une surcouche de la fonction WindowProc donc forcement c'est bcp plus lent ! Mais bon c'est sur qu'a l'echelle d'un bon usrecontrol bien lourd c'est deja pas mal rapide. Je me comprend :p

MadM@tt> si tu utilise l'ocs dans t'es projet alors ça ne plante pas. Par contre si tu inclu le control dans ton projet alors la oui ça peut planter. Car en realite il faut que la procedure de sous classement soit TOUJOURS disponible a l'execution.

Trop_Violent_Ken> C'est cool mais j'aurais bien vu un module de classe car le usercontrol est vraiment lourd que ce soit a l'initialisation mais aussi lors de l'acces aux proprietés. Et puis j'aurais crée une interface avec les evenements a ajouter c'est quand meme mieu :p

Hey les mecs arretez d'ecrire mon pseudo partout je vais me faire reperer par le googlebot hahaha
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
18 avril 2007 à 06:03
R.A.S.

beau boulot
MadM@tt Messages postés 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 1
18 avril 2007 à 00:08
Ahhh effectivement en ocx externe je ne sais pas ce que ça donne, à tester.
violent_ken Messages postés 1812 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 26 octobre 2010 2
18 avril 2007 à 00:02
Pour le coup de l'IDE qui crashe, je sais pas si çà le fait en utilisant le fichier *.ocx en externe (dans l'exemple pas d'ocx, mais le fichier ctl chargé dans le projet). A tester ;)


Et effectivement, la dll de Renfield passe outre ce problème et propose bien plus de possibilités, mais c'est pas le même niveau non plus ;)


Et c'est vrai, "big up" à EB et merci également à toi pour ta source, çà m'a été vraiment utile pour implanter l'appel et la wndproc.

Bonne nuit, @+
MadM@tt Messages postés 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 1
17 avril 2007 à 23:57
Ah le voilà l'ocx dont tu parlais ;)
Vraiment interessant, le coup du "2 lignes pour l'utiliser" ça a l'air vraiment tentant.
Par contre je suppose qu'il y'a toujours hélas le problème de l'ide qui plante à tout va, pas pratique si on veut développer, enfin c'est pas une critique j'ai le meme problème lol ^^
Renfield avait proposé de passer par une dll externe pour le subclassing (ce que je n'ai pas encore eu le temps et le courage de faire :s) pour résoudre ce souci.
Bravo et encore "big up" pour EBArtSoft qui passera surement par là mdr
Allé bonne nuit ;)
violent_ken Messages postés 1812 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 26 octobre 2010 2
17 avril 2007 à 23:33
Encore autre chose pendant que j'y pense.... MERCI à MadM@tt pour sa source PictureBox améliorée, c'est grâce à elle que j'ai pu implanter l'ASM d'EBArtSoft ^^

@+
violent_ken Messages postés 1812 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 26 octobre 2010 2
17 avril 2007 à 23:04
Autre chose : comme j'ai codée çà à l'arrache en 2 heures ce soir, j'ai pas mis beaucoup de commentaires et il se peut que j'ai fait quelques petites bourdes ^^


@+
violent_ken Messages postés 1812 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 26 octobre 2010 2
17 avril 2007 à 22:55
J'ai oublié de préciser :

-pour utiliser l'OCX dans vos projets, il faudra le compiler et ajouter une référence à cet OCX

-pour démarrer mon exemple, il faut lancer LE FICHIER *.VBG

@+ et enjoy
Rejoignez-nous