Probleme Listbox !

Signaler
Messages postés
89
Date d'inscription
mercredi 25 juin 2003
Statut
Membre
Dernière intervention
14 septembre 2007
-
Messages postés
224
Date d'inscription
mardi 12 août 2003
Statut
Membre
Dernière intervention
18 octobre 2010
-
Bonjour,



Voila je developpe un petit programme et j'ai un bug que j'arrive pas a corriger !!!!!

Bon voila le bug, j'ai créé un list box multi selection, j'aimerai que
quand je fasse une selection de au moin deux elements les boutons dans
ma fenetre change d'état et devienent actif :

// Creation

{
temp =
CreateWindowEx(0, "LISTBOX", "Player List", WS_CHILD | WS_VISIBLE
| LBS_MULTIPLESEL | LBS_SORT | WS_BORDER | WS_VSCROLL | WS_TABSTOP,0,0,0,0,_WinPlayerHwnd, (HMENU) IDL_WINPLAYER_LISTBOX,_WinPlayerHwnd.GetInstance(), NULL);

_ListBoxHwnd.Init(temp);

}






aprés dans ma winproc je fais :





case WM_COMMAND:

.......


case IDL_WINPLAYER_LISTBOX:

EnableWin(true);

return true;



et ma fonction unable est la suivante :



void WinPlayer::EnableWin (bool etat)

{

bool EtatTemp;



// Get the number of element the user has selected

int count = SendMessage( _ListBoxHwnd, LB_GETSELCOUNT, 0, 0 );



// Care about connection and selection

EtatTemp = etat;

if( (etat && _NetWork->AmIConnected()) || count == 0 )

EtatTemp = false;



EnableWindow( _AddPlayerBtnHwnd, EtatTemp );

EnableWindow( _BlockPlayerBtnHwnd, EtatTemp );

}




Le GROS PROBLEME c'est que a chaque fois ben count = 0 !!!

quand je selection dans ma list box je passe bien dans la fonction EnableWin, mais count = 0 !!!!

il faut que je clique sur un autre control, et hop ! count prend sa vrai valeur !! ya un truc qui m'échape la !!



si quelqu'un a une solution......



--------------------------------------------------------



et
un autre problem, dans un dialog box, a l'initialisation je cache
certaint bouton etc...., une foi le moment venu, je les affiche en
utilisant :




ShowWindow( GetDlgItem( hWnd,IDC_EDIT_WORKING), SW_SHOW );






et
la c'est le meme probleme ! il ne s'affiche pas, mais seulement quand
je fait apparaitre un MessageBox(0,0,0,0); par exemple !



je pense que la solution est la meme que le probleme plus haut alors.....



Merci d'avance a celui qui lira et reponda a ce sujet !!!!

1 réponse

Messages postés
224
Date d'inscription
mardi 12 août 2003
Statut
Membre
Dernière intervention
18 octobre 2010

pour le 1er probleme tu utlise bien la notification LBN_SELCHANGE dans ton WM_COMMAND ?
pour le second, que donne UpdateWindow ? sinon essaye InvalidateRect.