GESTION DOUBLE CLIC SUR LISTVIEW (SUBCLASSING)

Signaler
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
-
Messages postés
40
Date d'inscription
dimanche 23 novembre 2003
Statut
Membre
Dernière intervention
25 juin 2011
-
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/47305-gestion-double-clic-sur-listview-subclassing

Messages postés
40
Date d'inscription
dimanche 23 novembre 2003
Statut
Membre
Dernière intervention
25 juin 2011

Salut!
Intéressant. Grâce à ta source j'ai pu subclasser un column header d'une listview, afin de pouvoir attraper les mousemove ! (impossible normallement à partir de la listview, dès qu'on arrive sur le header les WM_MOUSEMOVE ne se lancent pas)

-----------------

Cependant, je ne comprend pas un de tes points. Peut-être le même que PCPT (?) :

'Renvoi les messages de sous-classement (si on le souhaite)
Protected Overrides Sub WndProc(ByRef m As Message)
If mSubClass Then 'If Subclassing Enabled then RaiseEvent
RaiseEvent CallBackProc(m)
End If
MyBase.WndProc(m) <<<<<<< ICI (?)
End Sub

Pourquoi faire passer en dernier TOUS les messages, même quand tu les a déjà redirigés ? J'aurais plutôt vu un

'Renvoi les messages de sous-classement (si on le souhaite)
Protected Overrides Sub WndProc(ByRef m As Message)
If mSubClass Then 'If Subclassing Enabled then RaiseEvent
RaiseEvent CallBackProc(m)
else
MyBase.WndProc(m) <<<<<<< LA !!
End If
End Sub

Car avec ton code, cela fait donc DOUBLE EMPLOI avec la même commande dans :
Private Sub CallBackProc(ByRef m As System.Windows.Forms.Message)

Je veux dire que tu lance MyBase.WndProc(m) 2x dans le cas ou il était subclassé...

Tiens-moi au courant STP, je ne comprends pas ^^
Merci d'avance!
Messages postés
31
Date d'inscription
mercredi 17 octobre 2007
Statut
Membre
Dernière intervention
16 mars 2009

Excellent. Source très utile et explicite. merci
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
43
beh le premier pas est fait, j'ai installé VS2008 c'est déjà pas mal non? ^^
on verra par la suite, rien ne presse

compris pour le subclass permanent et son appel. tout s'explique ;)
merci

bonne continuation
Messages postés
1411
Date d'inscription
mercredi 6 août 2003
Statut
Membre
Dernière intervention
3 mars 2019
1
"j'sens que je ne vais pas me mettre à dotnet encore un moment"

LOL j'ai fait la même reflexion pendant très longtemps. DotNet est si, DotNet est ça.
En fait, il faut simplement se lancer, faire un premier pas et on se rend compte du temps que l'on peut gagner à programmer en .NET
Depuis que j'y ai gouter, je ne touche plus mon VB6 (juste pour relire d'anciens codes et les porter en .Net)

Sinon, pour répondre à ta question. Je reconnais ne pas avoir été très clair. Plus même je me suis carrement mal exprimé.

La class n'a en fait rien a voir dans le sous-classement de la fenêtre elle-même. Disons que toutes les fenêtres en VB.Net le sont automatiquement.
Et pour récupérer les messages il suffit d'ajouter : Protected Overrides Sub WndProc(ByRef m As Message)
Afficher les 8 commentaires