Est-il possible d'avoir accès au paramètre de réglage du défilement provoqué
par la molette de la souris ?
J'aimerais le sauvegarder, le changer, et enfin le rétablir, de façon que
dans mon programme le défilement se produise comme je le souhaite..
Que veux-tu faire exactement ? Récupérer les évenements de la molette ou les paramètres de défilement ?
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/
Barsalou wrote:
Bonjour
Est-il possible d'avoir accès au paramètre de réglage du défilement provoqué par la molette de la souris ? J'aimerais le sauvegarder, le changer, et enfin le rétablir, de façon que dans mon programme le défilement se produise comme je le souhaite..
Merci
Salut,
Que veux-tu faire exactement ? Récupérer les évenements de la molette ou les
paramètres de défilement ?
--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
Barsalou wrote:
Bonjour
Est-il possible d'avoir accès au paramètre de réglage du défilement
provoqué par la molette de la souris ?
J'aimerais le sauvegarder, le changer, et enfin le rétablir, de façon
que dans mon programme le défilement se produise comme je le
souhaite..
Que veux-tu faire exactement ? Récupérer les évenements de la molette ou les paramètres de défilement ?
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/
Barsalou wrote:
Bonjour
Est-il possible d'avoir accès au paramètre de réglage du défilement provoqué par la molette de la souris ? J'aimerais le sauvegarder, le changer, et enfin le rétablir, de façon que dans mon programme le défilement se produise comme je le souhaite..
Merci
Barsalou
Merci de t'intéresser au problème.* Je voudrais modifier les paramètres de défilement, pour qu'un déclic de la roulette fasse un déplacement d'une seule ligne, et bien sûr remettre les choses en l'état à la fermeture du programme.
Merci de t'intéresser au problème.*
Je voudrais modifier les paramètres de défilement, pour qu'un déclic de la
roulette fasse un déplacement d'une seule ligne, et bien sûr remettre les
choses en l'état à la fermeture du programme.
Merci de t'intéresser au problème.* Je voudrais modifier les paramètres de défilement, pour qu'un déclic de la roulette fasse un déplacement d'une seule ligne, et bien sûr remettre les choses en l'état à la fermeture du programme.
Jean-Marc
"Barsalou" a écrit dans le message de news:
Merci de t'intéresser au problème.* Je voudrais modifier les paramètres de défilement, pour qu'un déclic de la roulette fasse un déplacement d'une seule ligne, et bien sûr remettre les choses en l'état à la fermeture du programme.
Hello,
peut être pourrais tu préciser un peu les choses? Tu parles de déplacement "d'une seule ligne" ? On ne peut pas deviner de quoi tu parles. Il faudrait préciser le contexte: dans quel composant, le contenu du composant à l'instant t, ce que tu obtiens actuellement, ce que tu souhaites obtenir, etc. Essaie de décrire avec le plus de détails possibles. Mieux encore: extrait de ton code le minimum, ou construit un exemple illustrant la situation afin que l'on puisse: 1/ reproduire 2/ trouver une solution
Avec tout ceci, je suis sur que tu trouveras ici même plein de personnes de bonne volonté pour t'aider :-)
-- Jean-marc "There are only 10 kind of people those who understand binary and those who don't."
"Barsalou" <eric.barsalou@wanadoo.fr> a écrit dans le message de
news:OipKjburEHA.348@TK2MSFTNGP15.phx.gbl...
Merci de t'intéresser au problème.*
Je voudrais modifier les paramètres de défilement, pour qu'un déclic de la
roulette fasse un déplacement d'une seule ligne, et bien sûr remettre les
choses en l'état à la fermeture du programme.
Hello,
peut être pourrais tu préciser un peu les choses?
Tu parles de déplacement "d'une seule ligne" ? On
ne peut pas deviner de quoi tu parles. Il faudrait
préciser le contexte: dans quel composant, le
contenu du composant à l'instant t, ce que tu obtiens
actuellement, ce que tu souhaites obtenir, etc.
Essaie de décrire avec le plus de détails possibles.
Mieux encore: extrait de ton code le minimum, ou
construit un exemple illustrant la situation afin
que l'on puisse:
1/ reproduire
2/ trouver une solution
Avec tout ceci, je suis sur que tu trouveras ici
même plein de personnes de bonne volonté pour
t'aider :-)
--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."
Merci de t'intéresser au problème.* Je voudrais modifier les paramètres de défilement, pour qu'un déclic de la roulette fasse un déplacement d'une seule ligne, et bien sûr remettre les choses en l'état à la fermeture du programme.
Hello,
peut être pourrais tu préciser un peu les choses? Tu parles de déplacement "d'une seule ligne" ? On ne peut pas deviner de quoi tu parles. Il faudrait préciser le contexte: dans quel composant, le contenu du composant à l'instant t, ce que tu obtiens actuellement, ce que tu souhaites obtenir, etc. Essaie de décrire avec le plus de détails possibles. Mieux encore: extrait de ton code le minimum, ou construit un exemple illustrant la situation afin que l'on puisse: 1/ reproduire 2/ trouver une solution
Avec tout ceci, je suis sur que tu trouveras ici même plein de personnes de bonne volonté pour t'aider :-)
-- Jean-marc "There are only 10 kind of people those who understand binary and those who don't."
Barsalou
Salut
Je vois que je n'ai pas été clair.
Dans mon programme j'ai un bon nombre de ListBox dont la hauteur de fenêtre ne permet de voir qu'une seule ligne, ceci pour des raisons encombrement. On peut bien sûr naviguer dans ces ListBox à l'aide des ascenseurs, mais également avec la molette de la souris.
Or le réglage de cette molette (par Intellipoint, TweakUi, ou autre) peut être tel que, par exemple, 3 lignes, c'est à dire trois choix possibles dans la ListBox, sautent pour chaque déclic de la molette (c'est par exemple ce qui se produit chez moi dans l'environnement de programmation de VB). Je voudrais tout simplement pouvoir passer tranquillement d'une ligne à la suivante (ou la précédente) à chaque déclic de molette, en modifiant ce réglage dans le programme, et rétablir à la fin la valeur initialement choisie par l'utilisateur (3 lignes chez moi).
J'espère que l'on me comprend maintenant !
Merci à tous
Salut
Je vois que je n'ai pas été clair.
Dans mon programme j'ai un bon nombre de ListBox dont la hauteur de fenêtre
ne permet de voir qu'une seule ligne, ceci pour des raisons encombrement.
On peut bien sûr naviguer dans ces ListBox à l'aide des ascenseurs, mais
également avec la molette de la souris.
Or le réglage de cette molette (par Intellipoint, TweakUi, ou autre) peut
être tel que, par exemple, 3 lignes, c'est à dire trois choix possibles dans
la ListBox, sautent pour chaque déclic de la molette (c'est par exemple ce
qui se produit chez moi dans l'environnement de programmation de VB).
Je voudrais tout simplement pouvoir passer tranquillement d'une ligne à la
suivante (ou la précédente) à chaque déclic de molette, en modifiant ce
réglage dans le programme, et rétablir à la fin la valeur initialement
choisie par l'utilisateur (3 lignes chez moi).
Dans mon programme j'ai un bon nombre de ListBox dont la hauteur de fenêtre ne permet de voir qu'une seule ligne, ceci pour des raisons encombrement. On peut bien sûr naviguer dans ces ListBox à l'aide des ascenseurs, mais également avec la molette de la souris.
Or le réglage de cette molette (par Intellipoint, TweakUi, ou autre) peut être tel que, par exemple, 3 lignes, c'est à dire trois choix possibles dans la ListBox, sautent pour chaque déclic de la molette (c'est par exemple ce qui se produit chez moi dans l'environnement de programmation de VB). Je voudrais tout simplement pouvoir passer tranquillement d'une ligne à la suivante (ou la précédente) à chaque déclic de molette, en modifiant ce réglage dans le programme, et rétablir à la fin la valeur initialement choisie par l'utilisateur (3 lignes chez moi).
J'espère que l'on me comprend maintenant !
Merci à tous
ng
Salut,
Dans ce cas la meilleure méthode n'est pas de changer les paramètres de l'utilisateur mais de subclasser soit même le message WM_MOUSEWHEEL :
Voici un exemple :
'//Dans Form1 :
Option Explicit
Private Sub Form_Load() Call SubClass(List1.hwnd) End Sub
Private Sub Form_Unload(Cancel As Integer) Call UnSubClass(List1.hwnd) End Sub
Public Sub onMouseWheel(Direction As Integer) Call MoveListBoxTopIndex(Direction, List1) '//ou '//Call MoveListBoxListIndex(Direction, List1) '//C'est au choix, ca dépend de l'effet désiré,MoveListBoxListIndex() '//sélectionne automatiquement la ligne déplacée alors que MoveListBoxTopIndex() non. End Sub
Public Sub MoveListBoxListIndex(wDirection As Integer, oList As ListBox) If wDirection = 1 Then If oList.ListIndex > 0 Then oList.ListIndex = oList.ListIndex - 1 Else If oList.ListIndex < (oList.ListCount - 1) Then oList.ListIndex oList.ListIndex + 1 End If End Sub
Public Sub MoveListBoxTopIndex(wDirection As Integer, oList As ListBox) If wDirection = 1 Then If oList.TopIndex > 0 Then oList.TopIndex = oList.TopIndex - 1 Else If oList.TopIndex < (oList.ListCount - 1) Then oList.TopIndex oList.TopIndex + 1 End If End Sub
'//Dans un module :
Option Explicit
Private 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
Private Declare Function SetWindowLong _ Lib "user32" _ Alias "SetWindowLongA" _ ( _ ByVal hwnd As Long, _ ByVal nIndex As Long, _ ByVal dwNewLong As Long _ ) As Long
Private Const GWL_WNDPROC As Long = -4 Private m_lOldProc As Long
Public Sub SubClass(ByRef hwnd As Long) m_lOldProc = SetWindowLong(hwnd, GWL_WNDPROC, AddressOf WindowProc) End Sub
Public Sub UnSubClass(ByRef hwnd As Long) SetWindowLong hwnd, GWL_WNDPROC, m_lOldProc End Sub
Public 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_MOUSEWHEEL 'message molette tournée If (HiWord(wParam) / WHEEL_DELTA) < 0 Then Call Form1.onMouseWheel(2) Else Call Form1.onMouseWheel(1) End If Case Else WindowProc = CallWindowProc(m_lOldProc, hwnd, uMsg, wParam, lParam) End Select
End Function Public Function HiWord(dw As Long) As Integer If dw And &H80000000 Then HiWord = (dw 65535) - 1 Else HiWord = dw 65535 End If End Function Public Function LoWord(dw As Long) As Integer If dw And &H8000& Then LoWord = &H8000 Or (dw And &H7FFF&) Else LoWord = dw And &HFFFF& End If End Function
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/
Barsalou wrote:
Salut
Je vois que je n'ai pas été clair.
Dans mon programme j'ai un bon nombre de ListBox dont la hauteur de fenêtre ne permet de voir qu'une seule ligne, ceci pour des raisons encombrement. On peut bien sûr naviguer dans ces ListBox à l'aide des ascenseurs, mais également avec la molette de la souris.
Or le réglage de cette molette (par Intellipoint, TweakUi, ou autre) peut être tel que, par exemple, 3 lignes, c'est à dire trois choix possibles dans la ListBox, sautent pour chaque déclic de la molette (c'est par exemple ce qui se produit chez moi dans l'environnement de programmation de VB). Je voudrais tout simplement pouvoir passer tranquillement d'une ligne à la suivante (ou la précédente) à chaque déclic de molette, en modifiant ce réglage dans le programme, et rétablir à la fin la valeur initialement choisie par l'utilisateur (3 lignes chez moi).
J'espère que l'on me comprend maintenant !
Merci à tous
Salut,
Dans ce cas la meilleure méthode n'est pas de changer les paramètres de
l'utilisateur mais de subclasser soit même le message WM_MOUSEWHEEL :
Voici un exemple :
'//Dans Form1 :
Option Explicit
Private Sub Form_Load()
Call SubClass(List1.hwnd)
End Sub
Private Sub Form_Unload(Cancel As Integer)
Call UnSubClass(List1.hwnd)
End Sub
Public Sub onMouseWheel(Direction As Integer)
Call MoveListBoxTopIndex(Direction, List1)
'//ou
'//Call MoveListBoxListIndex(Direction, List1)
'//C'est au choix, ca dépend de l'effet désiré,MoveListBoxListIndex()
'//sélectionne automatiquement la ligne déplacée alors que
MoveListBoxTopIndex() non.
End Sub
Public Sub MoveListBoxListIndex(wDirection As Integer, oList As ListBox)
If wDirection = 1 Then
If oList.ListIndex > 0 Then oList.ListIndex = oList.ListIndex - 1
Else
If oList.ListIndex < (oList.ListCount - 1) Then oList.ListIndex oList.ListIndex + 1
End If
End Sub
Public Sub MoveListBoxTopIndex(wDirection As Integer, oList As ListBox)
If wDirection = 1 Then
If oList.TopIndex > 0 Then oList.TopIndex = oList.TopIndex - 1
Else
If oList.TopIndex < (oList.ListCount - 1) Then oList.TopIndex oList.TopIndex + 1
End If
End Sub
'//Dans un module :
Option Explicit
Private 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
Private Declare Function SetWindowLong _
Lib "user32" _
Alias "SetWindowLongA" _
( _
ByVal hwnd As Long, _
ByVal nIndex As Long, _
ByVal dwNewLong As Long _
) As Long
Private Const GWL_WNDPROC As Long = -4
Private m_lOldProc As Long
Public Sub SubClass(ByRef hwnd As Long)
m_lOldProc = SetWindowLong(hwnd, GWL_WNDPROC, AddressOf WindowProc)
End Sub
Public Sub UnSubClass(ByRef hwnd As Long)
SetWindowLong hwnd, GWL_WNDPROC, m_lOldProc
End Sub
Public 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_MOUSEWHEEL
'message molette tournée
If (HiWord(wParam) / WHEEL_DELTA) < 0 Then
Call Form1.onMouseWheel(2)
Else
Call Form1.onMouseWheel(1)
End If
Case Else
WindowProc = CallWindowProc(m_lOldProc, hwnd, uMsg, wParam,
lParam)
End Select
End Function
Public Function HiWord(dw As Long) As Integer
If dw And &H80000000 Then
HiWord = (dw 65535) - 1
Else
HiWord = dw 65535
End If
End Function
Public Function LoWord(dw As Long) As Integer
If dw And &H8000& Then
LoWord = &H8000 Or (dw And &H7FFF&)
Else
LoWord = dw And &HFFFF&
End If
End Function
--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
Barsalou wrote:
Salut
Je vois que je n'ai pas été clair.
Dans mon programme j'ai un bon nombre de ListBox dont la hauteur de
fenêtre ne permet de voir qu'une seule ligne, ceci pour des raisons
encombrement. On peut bien sûr naviguer dans ces ListBox à l'aide des
ascenseurs, mais également avec la molette de la souris.
Or le réglage de cette molette (par Intellipoint, TweakUi, ou autre)
peut être tel que, par exemple, 3 lignes, c'est à dire trois choix
possibles dans la ListBox, sautent pour chaque déclic de la molette
(c'est par exemple ce qui se produit chez moi dans l'environnement de
programmation de VB).
Je voudrais tout simplement pouvoir passer tranquillement d'une ligne
à la suivante (ou la précédente) à chaque déclic de molette, en
modifiant ce réglage dans le programme, et rétablir à la fin la
valeur initialement choisie par l'utilisateur (3 lignes chez moi).
Dans ce cas la meilleure méthode n'est pas de changer les paramètres de l'utilisateur mais de subclasser soit même le message WM_MOUSEWHEEL :
Voici un exemple :
'//Dans Form1 :
Option Explicit
Private Sub Form_Load() Call SubClass(List1.hwnd) End Sub
Private Sub Form_Unload(Cancel As Integer) Call UnSubClass(List1.hwnd) End Sub
Public Sub onMouseWheel(Direction As Integer) Call MoveListBoxTopIndex(Direction, List1) '//ou '//Call MoveListBoxListIndex(Direction, List1) '//C'est au choix, ca dépend de l'effet désiré,MoveListBoxListIndex() '//sélectionne automatiquement la ligne déplacée alors que MoveListBoxTopIndex() non. End Sub
Public Sub MoveListBoxListIndex(wDirection As Integer, oList As ListBox) If wDirection = 1 Then If oList.ListIndex > 0 Then oList.ListIndex = oList.ListIndex - 1 Else If oList.ListIndex < (oList.ListCount - 1) Then oList.ListIndex oList.ListIndex + 1 End If End Sub
Public Sub MoveListBoxTopIndex(wDirection As Integer, oList As ListBox) If wDirection = 1 Then If oList.TopIndex > 0 Then oList.TopIndex = oList.TopIndex - 1 Else If oList.TopIndex < (oList.ListCount - 1) Then oList.TopIndex oList.TopIndex + 1 End If End Sub
'//Dans un module :
Option Explicit
Private 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
Private Declare Function SetWindowLong _ Lib "user32" _ Alias "SetWindowLongA" _ ( _ ByVal hwnd As Long, _ ByVal nIndex As Long, _ ByVal dwNewLong As Long _ ) As Long
Private Const GWL_WNDPROC As Long = -4 Private m_lOldProc As Long
Public Sub SubClass(ByRef hwnd As Long) m_lOldProc = SetWindowLong(hwnd, GWL_WNDPROC, AddressOf WindowProc) End Sub
Public Sub UnSubClass(ByRef hwnd As Long) SetWindowLong hwnd, GWL_WNDPROC, m_lOldProc End Sub
Public 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_MOUSEWHEEL 'message molette tournée If (HiWord(wParam) / WHEEL_DELTA) < 0 Then Call Form1.onMouseWheel(2) Else Call Form1.onMouseWheel(1) End If Case Else WindowProc = CallWindowProc(m_lOldProc, hwnd, uMsg, wParam, lParam) End Select
End Function Public Function HiWord(dw As Long) As Integer If dw And &H80000000 Then HiWord = (dw 65535) - 1 Else HiWord = dw 65535 End If End Function Public Function LoWord(dw As Long) As Integer If dw And &H8000& Then LoWord = &H8000 Or (dw And &H7FFF&) Else LoWord = dw And &HFFFF& End If End Function
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/
Barsalou wrote:
Salut
Je vois que je n'ai pas été clair.
Dans mon programme j'ai un bon nombre de ListBox dont la hauteur de fenêtre ne permet de voir qu'une seule ligne, ceci pour des raisons encombrement. On peut bien sûr naviguer dans ces ListBox à l'aide des ascenseurs, mais également avec la molette de la souris.
Or le réglage de cette molette (par Intellipoint, TweakUi, ou autre) peut être tel que, par exemple, 3 lignes, c'est à dire trois choix possibles dans la ListBox, sautent pour chaque déclic de la molette (c'est par exemple ce qui se produit chez moi dans l'environnement de programmation de VB). Je voudrais tout simplement pouvoir passer tranquillement d'une ligne à la suivante (ou la précédente) à chaque déclic de molette, en modifiant ce réglage dans le programme, et rétablir à la fin la valeur initialement choisie par l'utilisateur (3 lignes chez moi).
J'espère que l'on me comprend maintenant !
Merci à tous
Barsalou
Merci, je vais essayer tout ça, bien que je n'y comprenne pas grand chose. Où trouver des infos sur la notion de sous classer un contrôle ?
Salut à tous
Merci, je vais essayer tout ça, bien que je n'y comprenne pas grand chose.
Où trouver des infos sur la notion de sous classer un contrôle ?
Merci, je vais essayer tout ça, bien que je n'y comprenne pas grand chose. Où trouver des infos sur la notion de sous classer un contrôle ?
Salut à tous
Barsalou
Salut
Ton exemple marche parfaitement tel quel . Cependant j'ai sur ma feuille 40 listbox, en deux groupes indexés list1() et list2(), et du coup cela ne marche pas. Que faut-il modifier à ton avis ? Sans doute appliquer subclass et unsubclass à toutes les listbox, ce que j'ai fait, mais encore ?
Dans ton exemple la liste change quand la molette tourne quelle que soit la position de la souris sur la feuille. Dans mon cas c'est seulement quand le curseur de la souris est sur la liste
En outre j'ai le même problème dans plusieurs feuilles, et c'est pourquoi il me semblait plus simple de changer une fois pour toutes le paramètre utilisateur
Merci de ton aide
Salut
Ton exemple marche parfaitement tel quel
.
Cependant j'ai sur ma feuille 40 listbox, en deux groupes indexés list1() et
list2(), et du coup cela ne marche pas.
Que faut-il modifier à ton avis ? Sans doute appliquer subclass et
unsubclass à toutes les listbox, ce que j'ai fait, mais encore ?
Dans ton exemple la liste change quand la molette tourne quelle que soit la
position de la souris sur la feuille.
Dans mon cas c'est seulement quand le curseur de la souris est sur la liste
En outre j'ai le même problème dans plusieurs feuilles, et c'est pourquoi il
me semblait plus simple de changer une fois pour toutes le paramètre
utilisateur
Ton exemple marche parfaitement tel quel . Cependant j'ai sur ma feuille 40 listbox, en deux groupes indexés list1() et list2(), et du coup cela ne marche pas. Que faut-il modifier à ton avis ? Sans doute appliquer subclass et unsubclass à toutes les listbox, ce que j'ai fait, mais encore ?
Dans ton exemple la liste change quand la molette tourne quelle que soit la position de la souris sur la feuille. Dans mon cas c'est seulement quand le curseur de la souris est sur la liste
En outre j'ai le même problème dans plusieurs feuilles, et c'est pourquoi il me semblait plus simple de changer une fois pour toutes le paramètre utilisateur
Merci de ton aide
ng
Salut,
Il faudrait utiliser un tabelau dans le module de subclassing, sinon il y aurait une autre solution : subclasser la form et déplacer la listbox que le curseur survol.
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/
Barsalou wrote:
Salut
Ton exemple marche parfaitement tel quel . Cependant j'ai sur ma feuille 40 listbox, en deux groupes indexés list1() et list2(), et du coup cela ne marche pas. Que faut-il modifier à ton avis ? Sans doute appliquer subclass et unsubclass à toutes les listbox, ce que j'ai fait, mais encore ?
Dans ton exemple la liste change quand la molette tourne quelle que soit la position de la souris sur la feuille. Dans mon cas c'est seulement quand le curseur de la souris est sur la liste
En outre j'ai le même problème dans plusieurs feuilles, et c'est pourquoi il me semblait plus simple de changer une fois pour toutes le paramètre utilisateur
Merci de ton aide
Salut,
Il faudrait utiliser un tabelau dans le module de subclassing, sinon il y
aurait une autre solution : subclasser la form et déplacer la listbox que le
curseur survol.
--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
Barsalou wrote:
Salut
Ton exemple marche parfaitement tel quel
.
Cependant j'ai sur ma feuille 40 listbox, en deux groupes indexés
list1() et list2(), et du coup cela ne marche pas.
Que faut-il modifier à ton avis ? Sans doute appliquer subclass et
unsubclass à toutes les listbox, ce que j'ai fait, mais encore ?
Dans ton exemple la liste change quand la molette tourne quelle que
soit la position de la souris sur la feuille.
Dans mon cas c'est seulement quand le curseur de la souris est sur la
liste
En outre j'ai le même problème dans plusieurs feuilles, et c'est
pourquoi il me semblait plus simple de changer une fois pour toutes
le paramètre utilisateur
Il faudrait utiliser un tabelau dans le module de subclassing, sinon il y aurait une autre solution : subclasser la form et déplacer la listbox que le curseur survol.
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/
Barsalou wrote:
Salut
Ton exemple marche parfaitement tel quel . Cependant j'ai sur ma feuille 40 listbox, en deux groupes indexés list1() et list2(), et du coup cela ne marche pas. Que faut-il modifier à ton avis ? Sans doute appliquer subclass et unsubclass à toutes les listbox, ce que j'ai fait, mais encore ?
Dans ton exemple la liste change quand la molette tourne quelle que soit la position de la souris sur la feuille. Dans mon cas c'est seulement quand le curseur de la souris est sur la liste
En outre j'ai le même problème dans plusieurs feuilles, et c'est pourquoi il me semblait plus simple de changer une fois pour toutes le paramètre utilisateur
Merci de ton aide
Barsalou
Salut
Je n'ai pas réussi à me démerder. J'ai fait quelques essais qui ont eu essentiellement pour effet de me planter.
Il faut dire que je ne connais rien à l'idée de sous-classer.
Ce serait super si pouvais me faire un exemple avec un petit groupe de ListBox (ou mieux deux groupes).
J'espérais naïvement qu'il existait une API permettant de modifie les paramètres de la molette. Je n'ai rien trouvé.
Merci en tout cas de tes efforts.
Salut
Je n'ai pas réussi à me démerder. J'ai fait quelques essais qui ont eu
essentiellement pour effet de me planter.
Il faut dire que je ne connais rien à l'idée de sous-classer.
Ce serait super si pouvais me faire un exemple avec un petit groupe de
ListBox (ou mieux deux groupes).
J'espérais naïvement qu'il existait une API permettant de modifie les
paramètres de la molette. Je n'ai rien trouvé.
Je n'ai pas réussi à me démerder. J'ai fait quelques essais qui ont eu essentiellement pour effet de me planter.
Il faut dire que je ne connais rien à l'idée de sous-classer.
Ce serait super si pouvais me faire un exemple avec un petit groupe de ListBox (ou mieux deux groupes).
J'espérais naïvement qu'il existait une API permettant de modifie les paramètres de la molette. Je n'ai rien trouvé.
Merci en tout cas de tes efforts.
ng
Salut,
Ok je vais essayer.
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/
Barsalou wrote:
Salut
Je n'ai pas réussi à me démerder. J'ai fait quelques essais qui ont eu essentiellement pour effet de me planter.
Il faut dire que je ne connais rien à l'idée de sous-classer.
Ce serait super si pouvais me faire un exemple avec un petit groupe de ListBox (ou mieux deux groupes).
J'espérais naïvement qu'il existait une API permettant de modifie les paramètres de la molette. Je n'ai rien trouvé.
Merci en tout cas de tes efforts.
Salut,
Ok je vais essayer.
--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
Barsalou wrote:
Salut
Je n'ai pas réussi à me démerder. J'ai fait quelques essais qui ont eu
essentiellement pour effet de me planter.
Il faut dire que je ne connais rien à l'idée de sous-classer.
Ce serait super si pouvais me faire un exemple avec un petit groupe de
ListBox (ou mieux deux groupes).
J'espérais naïvement qu'il existait une API permettant de modifie les
paramètres de la molette. Je n'ai rien trouvé.
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/
Barsalou wrote:
Salut
Je n'ai pas réussi à me démerder. J'ai fait quelques essais qui ont eu essentiellement pour effet de me planter.
Il faut dire que je ne connais rien à l'idée de sous-classer.
Ce serait super si pouvais me faire un exemple avec un petit groupe de ListBox (ou mieux deux groupes).
J'espérais naïvement qu'il existait une API permettant de modifie les paramètres de la molette. Je n'ai rien trouvé.