GEREZ LES EVENEMENTS MOUSE_WHEEL, MOUSE_ENTER, DBL_CLICK, MOUSE_LEAVE .... ETC
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 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.
andalo
Messages postés102Date d'inscriptionlundi 23 avril 2007StatutMembreDernière intervention20 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és102Date d'inscriptionlundi 23 avril 2007StatutMembreDernière intervention20 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és17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 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)
andalo
Messages postés102Date d'inscriptionlundi 23 avril 2007StatutMembreDernière intervention20 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és1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 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és1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 24 avril 2007 à 15:18
Merci pour le commentaire !
@+
cs_JLN
Messages postés371Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention17 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és1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 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és1079Date d'inscriptionjeudi 14 novembre 2002StatutMembreDerniè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és1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 18 avril 2007 à 19:49
mdr ;)
@+ ^^
cs_EBArtSoft
Messages postés4525Date d'inscriptiondimanche 29 septembre 2002StatutModérateurDernière intervention22 avril 20199 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és1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 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és2167Date d'inscriptionmardi 11 novembre 2003StatutMembreDernière intervention16 juillet 20091 18 avril 2007 à 18:28
Ahhh autant pour moi ^^, j'ai pas regardé le passage concerné.
cs_EBArtSoft
Messages postés4525Date d'inscriptiondimanche 29 septembre 2002StatutModérateurDernière intervention22 avril 20199 18 avril 2007 à 17:08
MadM@tt> Jettes un oeuil sur le "select case" tu vas comprendre !
MadM@tt
Messages postés2167Date d'inscriptionmardi 11 novembre 2003StatutMembreDernière intervention16 juillet 20091 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és4525Date d'inscriptiondimanche 29 septembre 2002StatutModérateurDernière intervention22 avril 20199 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és4525Date d'inscriptiondimanche 29 septembre 2002StatutModérateurDernière intervention22 avril 20199 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és17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 18 avril 2007 à 06:03
R.A.S.
beau boulot
MadM@tt
Messages postés2167Date d'inscriptionmardi 11 novembre 2003StatutMembreDernière intervention16 juillet 20091 18 avril 2007 à 00:08
Ahhh effectivement en ocx externe je ne sais pas ce que ça donne, à tester.
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 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és2167Date d'inscriptionmardi 11 novembre 2003StatutMembreDernière intervention16 juillet 20091 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és1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 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és1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 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és1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 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
20 févr. 2011 à 19:34
12 juin 2008 à 16:47
12 juin 2008 à 16:34
Je sais que je suis exigeant mais l'evenement keydown est il fonctionel ou c'est moi qui ne sait pas l'activer?
12 juin 2008 à 14:44
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
12 juin 2008 à 14:38
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
17 mai 2007 à 17:23
http://www.vbfrance.com/code.aspx?ID=42726
@+
24 avril 2007 à 15:18
@+
23 avril 2007 à 17:37
@+ JLN
20 avril 2007 à 19:52
Mais dis moi, comment gère t-on le MouseLeave sans subclassing et sans Timer ??
@+
20 avril 2007 à 19:44
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
18 avril 2007 à 19:49
@+ ^^
18 avril 2007 à 19:47
Tu connais pas la legende du googlebot mangeur de bande passante ?
je vous la raconterait un soir de pleine lune :p
B@nne prog
18 avril 2007 à 19:29
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 ????
^^
@+
18 avril 2007 à 18:28
18 avril 2007 à 17:08
18 avril 2007 à 15:56
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 ?
18 avril 2007 à 08:49
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.
@+
18 avril 2007 à 08:39
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
18 avril 2007 à 06:03
beau boulot
18 avril 2007 à 00:08
18 avril 2007 à 00:02
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, @+
17 avril 2007 à 23:57
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 ;)
17 avril 2007 à 23:33
@+
17 avril 2007 à 23:04
@+
17 avril 2007 à 22:55
-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