begin process at 2012 05 30 08:53:10
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Windows

 > 

GUI

 > 

selection dans une listeview


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

selection dans une listeview

jeudi 25 janvier 2007 à 17:44:54 | selection dans une listeview

deck_bsd

Membre Club
Yop,


Voila je voulai faire en sorte que lorsque un item avait été trouvé lord d'une recherche, celui ci soit selectionner. Attention la fenêtre de recherche est une autre fenêtre que la principale. La recherche fonctionne très bien, le problème est que mon item ne se selectionne jamais. Je me suis dit,c'est sans doute un problème de focus, donc lorsque le text est trouvé, juste avant la selection, je fait un SetFocus sur la listview, mais bon cela ne sert a rien, car la fenetre de recherche part derrière la principal, ce n'est pas pratique et mon item n'est de toute façons pas sélectionner. Pour la sélection j'utilise ListViewSetItemState(hwLV,pos,LVIS_SELECTED,0) il y a-t-il une erreur ?

En résumé je voudrai bien faire comme la recherche du notepad windows. C-a-d la fenetre de recherche reste en 1er plan et derrière, mon item est selectionné dans la listeView :s mais je n'y arrive pas.

J'espère que vous m'avez compris lol

Merci d'avance.
++
deck_bsd
___________________________________
[ [ Lien ]]
jeudi 25 janvier 2007 à 17:55:48 | Re : selection dans une listeview

BruNews

Administrateur CodeS-SourceS
http://www.cppfrance.com/code.aspx?ID=35788

Regarde à la fin de lvrtInsertItem().

ciao...
BruNews, MVP VC++
jeudi 25 janvier 2007 à 18:38:02 | Re : selection dans une listeview

deck_bsd

Membre Club

Cela ne fonctionne pas, je comprend pas pourquoi . Ma listview a bien les style étendu, et je fait exactement comme toi, mais rien n'y fait.

Voici le code de traitemant du message WM_COMMAND de ma fnêtre de recherche (dialogbox) :

  case WM_COMMAND :
                 switch(HIWORD(wParam)){
                     case BN_CLICKED : switch(LOWORD(wParam)){
                                                                  case IDD_SEARCH : { char szText[200];
                                                                                                        char szSearch[200];
                                                                                                        int iCount,iX;
                                                                                                        LV_ITEM lviItem;
                                                                                                        BOOL bo = 0;
                                                           
                                                                                                        iCount = ListView_GetItemCount(hwListVParentWindows);
                                                                                                        if(iCount == 0)break;
                       
                                                                                                       GetWindowText(hwEditSearch,szSearch,200);

                                                                                                       lviItem.mask = LVIF_TEXT | LVCF_WIDTH;

                                                                                                       for(iX=iPosition;iX<iCount;++iX){
                                                                                                                        lviItem.iItem = iX;
                                                                                                                        lviItem.iSubItem = 1;
                                                                                                                        lviItem.cchTextMax = 200;
                                                                                                                        lviItem.pszText = szText;
                                                                                                                        ListView_GetItem(hwListVParentWindows,&lviItem);

                                                                                                                        if(MyStrStr(szText,szSearch)){bo=1;break;}
                                                                                                        }
                                                           
                                                                                                         if(bo){SendMessage(hwListVParentWindows,LVM_ENSUREVISIBLE,iX,0);
                                                                                                            lviItem.state = LVIS_SELECTED | LVIS_FOCUSED;
                                                                                                            lviItem.stateMask = LVIS_SELECTED | LVIS_FOCUSED;
                                                                                                            SendMessage(hwListVParentWindows,LVM_SETITEMSTATE,(long)iX,(long)&lviItem);
                                                                                                            iX++;
                                                                                                            iPosition = iX;
                                                                                                         }
                                                                                            
                                                                                         }
                                       break;
                                       case IDD_CANCEL : EndDialog(hwDlg,0);
                                       break;
        
                                }
                   break;
++
deck_bsd
___________________________________
[ [ Lien ]]

jeudi 25 janvier 2007 à 18:56:04 | Re : selection dans une listeview

deck_bsd

Membre Club
Enfin cela va un peu mieu vu que grace a ensurevisible ont assure sa visibilité dans la listview, mais il est tjrs pas en surbrillance :s

++
deck_bsd
___________________________________
[ [ Lien ]]
jeudi 25 janvier 2007 à 20:15:36 | Re : selection dans une listeview

yoyo269

Membre Club
Salut !

A la ligne : lviItem.mask = LVIF_TEXT | LVCF_WIDTH;
Il te manquerait pas LVIF_STATE ?

YOYO, @+.

"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"

jeudi 25 janvier 2007 à 20:25:29 | Re : selection dans une listeview

BruNews

Administrateur CodeS-SourceS
trop drole !!!

ciao...
BruNews, MVP VC++
jeudi 25 janvier 2007 à 20:36:03 | Re : selection dans une listeview

deck_bsd

Membre Club
Certe mais cela ne change rien.

++
deck_bsd
___________________________________
[ [ Lien ]]
jeudi 25 janvier 2007 à 20:44:01 | Re : selection dans une listeview

yoyo269

Membre Club
Plus sérieusement ! C'est ton statemask je pense qui déconne. Il sert à masquer les items qui seront affectés selon leur état.
Donc là toi tu demandes de modifier des items qui ont le focus et sont déjà sélectionnés.

YOYO, @+.

"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
_________________________________________________
Site officiel de YoyoCut, découpe fichiers open source



Cette discussion est classée dans : recherche, item, trouvé, selection, listeview


Répondre à ce message

Sujets en rapport avec ce message

selection d'un item d'un CTreeCtrl pour la seconde fois. [ par hdaniel ] Bonjour,j'utilise un arbre, lorsque l'évènement TVN_SELCHANGED arrive je traite la sélectiontout fonctionne.(je peux lire quel est l'item sélectionné FindNearest [ par infomaNss ] FindNearest fonctionne d'une façon similaire à FindKey. mais il recherche l'enregistrement le plus proche de la valeur entrée. Bon soir a tous. j'ai methodes k-means et la recherche tabou [ par bhakimm ] bonjour J'ai un problème avec la segmentation des images avec la recherche tabou bon.mon sujet porte sur la segmentation des images et ceci en utilisa Quel éditeur pour programmer en C [ par bigrat ] Bonjour je suis débutant , je recherche le meilleurs éditeurs pour programmer en C . Je recherche un éditeurs facile a comprendre, pour comme Moteur de recherche [ par warskull ] Bonjour tout le monde, j'ai a programmer un moteur de recherche et j'ai quelques difficultés .je cherche quelqu'un Si vous pouviez m'aider ça m'arrang [ Win32 ] TabControl - TC_ITEM - ScrollBar - Suppression [ par lectpe ] Bonjour à tous. Je suis en train de réaliser une application avec l'API Win32. J'ai un TabControl dans lequel j'ai plusieurs TC_ITEM. J'ai deux ques graphe........ [ par francismwanza ] Salut à tous... J'aimerai bien savoir si quelqu'un a l'algorithme sur le girth(le cycle le plus court d'un graphe) et le diametre(le plus long chemin [Recherche] Membres pour une équipe de dev [ par ads00 ] Bonjour, Je suis développeur PHP (principalement) avec de bonnes connaissances en programmation et tout ce qui touche à l'informatique. Je cherche a [BAR]Selection d'une zone pour double ecran [ par Haydu26 ] Bonsoir, Je recherche un logiciel qui me pemettrais de selectionner une zone de l'écran pour la diffuser sur un 2 ecran ou rétroprojecteur ! Par exe [BAR]Recherche scripteur pawno [ par Blecks ] Bonjours a tous, Voilà je m'explique avec quelques collègues on aurait pour projet de crée un serveur SA:MP. (Pour ceux qui ne connaissent pas voila:


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,136 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales