J'ai un contrôle listbox. Lorsque la souris passe dessus les éléments, je
voudrais que le nom de ceux-ci s'affichent dans un tooltip, par exemple, si le
nom de l'élément n'apparaît pas intégralement dans la listbox.
Le problème est que je ne trouve pas d'exemple de code simple (juste du C, pas
de .NET, de VB ou de MFC) qui illustre cela. On ne peux pas dire que les
exemples du MSDN concernant les tooltips soient très explicites non plus.
Faut-il sous-classer le contrôle listbox pour le message wm_mousemove ?
Quelqu'un a-t-il un exemple ?
Merci.
--
Ce message a été posté via la plateforme Web club-Internet.fr
This message has been posted by the Web platform club-Internet.fr
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Sundowne
'jour j'utilise ceci
Private Sub ListView1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Dim ItmX As ListItem Dim mo As Single
mo = X - (ListView1.ColumnHeaders(1).Width * Screen.TwipsPerPixelX) If mo < 0 Then mo = X Set ItmX = ListView1.HitTest(mo, Y) If Not (ItmX Is Nothing) Then ListView1.ToolTipText = ItmX.Text & " = " & ItmX.SubItems(1) Exit Sub End If ListView1.ToolTipText = "" End Sub
La sub détecte le mousemove sur la 1ére colonne dans mon cas. Peut-être aura tu quelques adaptations à faire , mais le principe est finalement simple. @+
"worried" a écrit dans le message de news:
Salut !
J'ai un contrôle listbox. Lorsque la souris passe dessus les éléments, je voudrais que le nom de ceux-ci s'affichent dans un tooltip, par exemple,
si le
nom de l'élément n'apparaît pas intégralement dans la listbox.
Le problème est que je ne trouve pas d'exemple de code simple (juste du C,
pas
de .NET, de VB ou de MFC) qui illustre cela. On ne peux pas dire que les exemples du MSDN concernant les tooltips soient très explicites non plus.
Faut-il sous-classer le contrôle listbox pour le message wm_mousemove ? Quelqu'un a-t-il un exemple ?
Merci. -- Ce message a été posté via la plateforme Web club-Internet.fr This message has been posted by the Web platform club-Internet.fr
http://forums.club-internet.fr/
'jour
j'utilise ceci
Private Sub ListView1_MouseMove(Button As Integer, Shift As Integer, X As
Single, Y As Single)
Dim ItmX As ListItem
Dim mo As Single
mo = X - (ListView1.ColumnHeaders(1).Width * Screen.TwipsPerPixelX)
If mo < 0 Then mo = X
Set ItmX = ListView1.HitTest(mo, Y)
If Not (ItmX Is Nothing) Then
ListView1.ToolTipText = ItmX.Text & " = " & ItmX.SubItems(1)
Exit Sub
End If
ListView1.ToolTipText = ""
End Sub
La sub détecte le mousemove sur la 1ére colonne dans mon cas.
Peut-être aura tu quelques adaptations à faire , mais le principe est
finalement simple.
@+
"worried" <noname@noname.fr> a écrit dans le message de
news:2003713-153330-705635@foorum.com...
Salut !
J'ai un contrôle listbox. Lorsque la souris passe dessus les éléments, je
voudrais que le nom de ceux-ci s'affichent dans un tooltip, par exemple,
si le
nom de l'élément n'apparaît pas intégralement dans la listbox.
Le problème est que je ne trouve pas d'exemple de code simple (juste du C,
pas
de .NET, de VB ou de MFC) qui illustre cela. On ne peux pas dire que les
exemples du MSDN concernant les tooltips soient très explicites non plus.
Faut-il sous-classer le contrôle listbox pour le message wm_mousemove ?
Quelqu'un a-t-il un exemple ?
Merci.
--
Ce message a été posté via la plateforme Web club-Internet.fr
This message has been posted by the Web platform club-Internet.fr
Private Sub ListView1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Dim ItmX As ListItem Dim mo As Single
mo = X - (ListView1.ColumnHeaders(1).Width * Screen.TwipsPerPixelX) If mo < 0 Then mo = X Set ItmX = ListView1.HitTest(mo, Y) If Not (ItmX Is Nothing) Then ListView1.ToolTipText = ItmX.Text & " = " & ItmX.SubItems(1) Exit Sub End If ListView1.ToolTipText = "" End Sub
La sub détecte le mousemove sur la 1ére colonne dans mon cas. Peut-être aura tu quelques adaptations à faire , mais le principe est finalement simple. @+
"worried" a écrit dans le message de news:
Salut !
J'ai un contrôle listbox. Lorsque la souris passe dessus les éléments, je voudrais que le nom de ceux-ci s'affichent dans un tooltip, par exemple,
si le
nom de l'élément n'apparaît pas intégralement dans la listbox.
Le problème est que je ne trouve pas d'exemple de code simple (juste du C,
pas
de .NET, de VB ou de MFC) qui illustre cela. On ne peux pas dire que les exemples du MSDN concernant les tooltips soient très explicites non plus.
Faut-il sous-classer le contrôle listbox pour le message wm_mousemove ? Quelqu'un a-t-il un exemple ?
Merci. -- Ce message a été posté via la plateforme Web club-Internet.fr This message has been posted by the Web platform club-Internet.fr
http://forums.club-internet.fr/
patrox
Utilise le message LB_ITEMFROMPOINT suite a un MouseMove ensuite affiche ton tool tip.
pat.
"worried" a écrit dans le message news:
Salut.
Tu m'as mal lu. Je ne souhaite pas de code VB mais du C. En VB tes
contrôles ont
des propriétés qu'ils n'ont pas en C :-). Par exemple, ma listbox n'a pas
de
tooltip associé. Bref, ça n' a rien à voir et souvent, il est difficile de passer d'un code VB à C.
Le problème est simple. Si je crée un tooltip et que j'ajoute la listbox
comme
tool, je n'ai qu'un tooltip pour toute la listbox, je veux dire, c'est la
zone
entière de la listbox qui est prise en compte, donc comment prendre en
compte
quand la souris bouge dessus ? Impossible de trouver un code valable sur
le Net
concernant les add-in tooltips ou les tracking tooltips ! Même pas dans
les ngs
!
Donc, je passe par la ruse suivante. Je découpe la listbox en plusieurs
zones
rectangulaires que j'ajoute comme tool à mon tooltip. Problème, ils ne
recoivent
pas de message puisque la listbox les recouvre. le seul moyen que le
tooltip
recoive wm_mousemove est de sous-classer wm_mousemove pour la listbox. En
ce cas,
comment intimer l'odre au tooltip d'afficher quelque chose.
TTM_RELAYEVENT
semble n'avoir aucun effet.
En fait le chapitre tooltip du msdn est misérable. Truffé d'erreur et
vraiment
pas explicite. J'ai bien trouvé des exemples en c++, mais c'est avec MFC
et 500
lignes de code ou plus...
-- Ce message a été posté via la plateforme Web club-Internet.fr This message has been posted by the Web platform club-Internet.fr
http://forums.club-internet.fr/
Utilise le message LB_ITEMFROMPOINT suite a un MouseMove ensuite affiche ton
tool tip.
pat.
"worried" <noname@noname.fr> a écrit dans le message news:
2003714-0150-627861@foorum.com...
Salut.
Tu m'as mal lu. Je ne souhaite pas de code VB mais du C. En VB tes
contrôles ont
des propriétés qu'ils n'ont pas en C :-). Par exemple, ma listbox n'a pas
de
tooltip associé. Bref, ça n' a rien à voir et souvent, il est difficile de
passer d'un code VB à C.
Le problème est simple. Si je crée un tooltip et que j'ajoute la listbox
comme
tool, je n'ai qu'un tooltip pour toute la listbox, je veux dire, c'est la
zone
entière de la listbox qui est prise en compte, donc comment prendre en
compte
quand la souris bouge dessus ? Impossible de trouver un code valable sur
le Net
concernant les add-in tooltips ou les tracking tooltips ! Même pas dans
les ngs
!
Donc, je passe par la ruse suivante. Je découpe la listbox en plusieurs
zones
rectangulaires que j'ajoute comme tool à mon tooltip. Problème, ils ne
recoivent
pas de message puisque la listbox les recouvre. le seul moyen que le
tooltip
recoive wm_mousemove est de sous-classer wm_mousemove pour la listbox. En
ce cas,
comment intimer l'odre au tooltip d'afficher quelque chose.
TTM_RELAYEVENT
semble n'avoir aucun effet.
En fait le chapitre tooltip du msdn est misérable. Truffé d'erreur et
vraiment
pas explicite. J'ai bien trouvé des exemples en c++, mais c'est avec MFC
et 500
lignes de code ou plus...
--
Ce message a été posté via la plateforme Web club-Internet.fr
This message has been posted by the Web platform club-Internet.fr