Bonjour � tous,
Avant d'expliquer le probl�me, voici je que j'essaye de faire. J'ai un tabControl avec 2 onglets (entre autres). Le premier contient une listbox avec la liste des fen�tres ouvertes, et le deuxi�me contenant un listview avec la liste des processus. Cette partie de mon application est tr�s similaire au gestionnaire des t�ches de Windows. Je veux que lorsque l'utilisateur s�lectionne une fen�tre (via la listbox) et qu'il clique sur un bouton, le programme bascule vers le deuxi�me onglet et s�lectionne le processus correspondant � la fen�tre dans la liste.
Dans mon code, je commence donc par trouver la bonne ligne dans le listview (apr�s avoir bascul� dans le 2�me onglet), puis je la s�lectionne en utilisant le message LVM_SETITEMSTATE. Enfin je donne le focus au listview avec le message WM_NEXTDLGCTL pour que la s�lection soit bien visible. C'est l� que �a coince... En effet lorsque je r�duit puis que je restaure la fen�tre de mon application, la listview appara�t comme un grand rectangle blanc. Je suis obliger de changer d'onglet manuellement pour que sont contenu soit de nouveau visible.
Voici le code qui me permet de s�lectionner la ligne dans le listview:
Voici un petit aper�u du probl�me: (le rectangle blanc est l'emplacement du listview)
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 // On donne le focus au listview SendMessage(hWndMain, WM_NEXTDLGCTL, (WPARAM)hProcessList, TRUE); // J'ai exactement le même problème avec SetFocus(hProcessList) HWND hTabCtl = GetDlgItem(hWndMain, IDC_TAB1); // On bascule sur l'autre onglet SendMessage(hTabCtl, TCM_SETCURSEL, 4, 0); UpdateTab(hWndMain); LVITEM lvItem; ZeroMemory(&lvItem, sizeof(LVITEM)); int index=2; // index de la ligne à sélectionner, j'ai supprimer la partie concernant la recherche de la ligne pour alléger le code lvItem.state = LVIS_SELECTED; lvItem.stateMask = LVIS_SELECTED; // On sélectionne la 2ème ligne SendMessage(hProcessList, LVM_SETITEMSTATE, index, (LONG)&lvItem); SendMessage(hProcessList, LVM_ENSUREVISIBLE, index, 0);
Est-ce que quelqu'un � d�j� rencontrer ce type de probl�me ? Ou bien est ce que j'ai oubli� quelques chose ?
Merci d'avance pour toute suggestion, id�e...
Beno�t
PS: Je n'ai pas ce probl�me d'actualisation si je ne donne pas le focus au listview. Malheureusement dans ce cas la s�lection est tr�s peu visible...
Partager