wxDev.fr, le portail francophone consacré à wxWidgets ! ( The french portal for wxWidgets )  
Esp. membre
Recheche rapide



Recherche avancée
Statistiques
Membres inscrits :2359

Membres en ligne : 0
Invités en ligne : 2

Valid XHTML 1.0 Transitional

Valid CSS2

Menu forum (navigation):
Pages: 1  
 
Accueil » Accueil forums » Création de composants spécifiques
» wxListBox
Conversation : wxListBox
13-12-2007 14:44:00  wxListBox #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
13-12-2007 15:22:31  Re: wxListBox #2
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)

13-12-2007 16:43:09  Re: wxListBox #3
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à...
13-12-2007 16:50:03  Re: wxListBox #4
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
13-12-2007 16:54:53  Re: wxListBox #5
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à...
13-12-2007 17:01:05  Re: wxListBox #6
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.
14-12-2007 11:42:52  Re: wxListBox #7
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
14-12-2007 18:11:33  Re: wxListBox #8
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.
Menu forum (navigation):
Pages: 1  
 
Accueil » Accueil forums » Création de composants spécifiques
» wxListBox