|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : juillet 2005 Messages : 39 ![]() |
Bonjour,
J'ai une listbox remplie d'item. Ma listbox fait 78 de width (imposé et ne peut pas être changé car devant fonctionner sur un écran 12 pouces) mais par contre elle accueille des item pouvant contenir 50 caractères. Il y a donc des items dont on voit que le début. Mon idée était au passage de la souris dans la listbox, d'afficher le tiptext correspondant. Le problème est que je ne trouve pas l'événement qui me convienne. Le mousemove ne fonctionne pas quand la listbox est ouverte ("dépliée"), le beforeupdate non plus. Avez vos déjà eu e problème et si oui quelle solution me proposez vous ? Par avance merci |
|
|
00
|
|
|
#2 |
![]() ![]() |
Bonjour
Sur quel type d'application es-tu ? Access, Excel, ... ? Car nativement, ce n'est pas possible, du moins j'en ai jamais entendu parlé. Il y aurait sûrement un possibilité, mais sur le click de la ligne sélectionnée. Starec |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : juillet 2005 Messages : 39 ![]() |
c'est ni excel ni acces mais je doute que vous connaissiez il s'agit de
Arcview 9.1 (logiciel de Système d'Information Géographique) Mais bon au final il propose l'editeur vba classique de word ou excel, le seul truc est qu'il a des classes spéciales pour manipuler les objets spécifiques à l'application Et effectivement si je passe la souris sur la listbox (repliée) une fois qu'il y quelque chose de sélectionné j'y arrive mais je me disait qu'on devait pouvoir intersepter le passage de la souris sur les items car ca sélectionne l'item donc vba capture bien un événement... Mais bon ca reste du détail pour mon appli mais ca fait mieux popur l'utilisateur final |
|
|
00
|
|
|
#4 |
|
Inactif
Inscription : juillet 2007 Messages : 4 555 ![]() |
bonjour,
la lecture de ta question me donne à penser qu'il ne s'agit pas d'une listbox (qui gère le mousemove), mais d'une combobox (qui ne le gère pas)... Alors : quel contrôle est-ce finalement ? |
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : juillet 2005 Messages : 39 ![]() |
effectivement à force de dire des betises... il s'agit bien d'une combobox et non pas d'une listbox
|
|
|
00
|
|
|
#6 |
|
Inactif
Inscription : juillet 2007 Messages : 4 555 ![]() |
Ouais...
C'est bien ce que je pensais ... On peut faire, mais au prix d'acrobaties et en passant par environ 2 fonctions de l'Api de Windows (lourd). Le jeu en vaut-il la chandelle ? |
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : juillet 2005 Messages : 39 ![]() |
Non le jeu n'en vaut pas la chandelle c'est du paufinage mais par contre a titre de "connaissance" peux tu me dire comment tu ferais ?
Merci |
|
|
00
|
|
|
#8 |
|
Inactif
Inscription : juillet 2007 Messages : 4 555 ![]() |
Comment ?
Ainsi : On extrait le handle de ta fenêtre on en détermine les coordonnées de l'angle supérieure gauche on calcule alors les coordonnées, par rapport à l'ECRAN, du bord supérieur gauche de la combobox on détermine maintenant (autre fonction de l'Api de Windows) la position du curseur à l'écran et là commence un calcul arithmétique basé sur : - le topindex en cours de la combo (utile si elle a été scrollée) - la police de la combo (pour connaître la hauteur de chacune de ses lignes) - la position relative du curseur (par rapport, cette fois-ci, à la Combo) on extrait ainsi, tout "simplement" ( Reste plus qu'à donner au tooltip le texte de cet item... T'as tout compris ? |
|
|
00
|
|
|
#9 |
|
Invité de passage
![]() Inscription : juillet 2005 Messages : 39 ![]() |
Oui j'ai tout compris mais c'est vrai que c'est vraiment tiré par les cheveux
Bon ben pour cette fois ca en vaut pas la peine mais bon au moins je connais la philosophie pour la prochaine fois. En tout cas merci !!!
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com