Membres inscrits :2359
Membres en ligne : 0
Invités en ligne : 1


|
raananb (Nouveau membre)
Inscrit le : 13-12-2007
Messages: 2
Snippets: 0
Tutoriels: 0
Hors ligne |
wxListBox offre la fonction SetFirstItem pour désigner l'item qui doit être le premier affiché.
Comment peut-on connaître le rang de l'item affiché en première ligne à un instant donné étant donné la possibilité de déroulé manuel ?
wxWidgets 2.8.7
|
|
Ivory69 (Membre)
Inscrit le : 09-10-2007
Messages: 69
Snippets: 0
Tutoriels: 0
Hors ligne |
Je suis désolé mais je n'ai pas compris. Essaye de prendre un exemple parce que raananb:connaître le rang de l'item affiché en première ligne pour moi la réponse est 0 et je pense pas que c'est la réponse que tu cherches...
Dernière modification par Ivory69 (13-12-2007 15:23:25)
|
|
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1383
Snippets: 25
Tutoriels: 6
Site web
Hors ligne |
salut raananb, et bienvenue.
Tu peux essayer de l'obtenir avec un "HitTest" : La méthode wxListBox::HitTest(const wxPoint point) retourne l'élément qui est sous le point passé en paramètre.
Si tu lui donnes les coordonnées d'un point situé en haut à gauche de la listbox, ça devrait le faire..
Tiens-nous au courant, ça peut toujours servir.
|
Le nouveau portail wxWidgets francophone : www.wxdev.fr Ben en fait, vous y êtes déjà...
|
Ivory69 (Membre)
Inscrit le : 09-10-2007
Messages: 69
Snippets: 0
Tutoriels: 0
Hors ligne |
C'est quoi en fait le probl Xav ? Si tu pouvais m'expliquer.. Que je comprenne... Aujourd'hui j'suis à l'ouest j'ai l'impression
|
|
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1383
Snippets: 25
Tutoriels: 6
Site web
Hors ligne |
En fait, wxListBox propose une méthode (SetFirstItem) permettant de forcer un item à être visible (en haut de la liste).
Par contre, il n'y a aucune méthode pour récupérer l'index du premier élément visible : il faut donc "tricher un peu". Comme il y a la méthode "HitTest" qui te donnes l'index le l'item sous le point dont les coordonnées sont passées en paramètre, ça devrait pouvoir marcher, normalement.
A tester pour un futur snippet.
|
Le nouveau portail wxWidgets francophone : www.wxdev.fr Ben en fait, vous y êtes déjà...
|
Ivory69 (Membre)
Inscrit le : 09-10-2007
Messages: 69
Snippets: 0
Tutoriels: 0
Hors ligne |
Oki j'ai saisi. Oui ça paait être une bonne soluce. En attendant les test de raananb.
|
|
xxltux (Membre)
Lieu: Montpellier
Inscrit le : 07-10-2007
Messages: 544
Snippets: 0
Tutoriels: 0
Site web
Hors ligne |
Par contre a ta place je ferai une class qui derive wxListBox et qui ajoute cette methode entre autre
|
Itérer est humain, récurser est divin
|
raananb (Nouveau membre)
Inscrit le : 13-12-2007
Messages: 2
Snippets: 0
Tutoriels: 0
Hors ligne |
La proposition de Xaviou fait l'affaire:
Pour wxListBox called listb:
int ListBox::GetTopIndex(void) { wxSize size = listb->GetSize(); int rank = -1; int i; for (i = 1; i < size.y && rank < 0; i++) { rank = listb->HitTest(wxPoint(0,i)); } return rank; }
Je proposerai cette solution au wxWidgets User forum.
Merci beaucoup.
|
|
|