racpp
Messages postés1910Date d'inscriptionvendredi 18 juin 2004StatutModérateurDernière intervention14 novembre 201417 1 sept. 2007 à 17:04
Salut,
C'est normal car le membre iItem de ta structure LVITEM est toujours à 0. C'est à cette position (1ère) que seront ajoutés tous les éléments. Pour qu'ils soient ajoutés à la fin il faut que ce membre soit égal ou supérieur au nombre total des éléments contenus dans la listview. Pour obtenir le nombre des éléments tu peux utiliser la macro ListView_GetItemCount(). La valeur retournée sera donnée au membre iItem.
cs_Mamelook
Messages postés48Date d'inscriptionjeudi 10 juillet 2003StatutMembreDernière intervention27 juillet 2008 1 sept. 2007 à 17:33
Merci beaucoup, tout fonctionne correctement maintenant.
J'aurai une autre question :
Comment on fait pour que le dernier message soit toujour visible, je m'explique : Si on a beaucoup de message, les nouveau message aparaitron tout en bas et donc ne seront pas visible car il faudra que l'utilisateur utilise la scrollbar.
Ma question est donc comment mettre l'utilisateur au niveau le plus bas (sans qu'il utilise la scrollbar) ?
cs_Mamelook
Messages postés48Date d'inscriptionjeudi 10 juillet 2003StatutMembreDernière intervention27 juillet 2008 1 sept. 2007 à 18:14
Tient au passage (question hors sujet), comment on fait pour qu'un control edit renvoi un WM_COMMAND quend on appui sur la touche entrée ?
Pour envoyer le message sans appyuer sur le bouton envoyer.
cs_juju12
Messages postés966Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 4 mars 20104 1 sept. 2007 à 18:52
Si tu crées ton Edit dans un DialogBox (en SingleLine), le fait d'appuyer sur Entrée simule automatiquement un click sur le bouton par défaut (par ex. Envoyer).
racpp
Messages postés1910Date d'inscriptionvendredi 18 juin 2004StatutModérateurDernière intervention14 novembre 201417 2 sept. 2007 à 12:33
Ton bouton doit avoir le style BS_DEFPUSHBUTTON et l'identificateur IDOK:
hEnvoyer=CreateWindowEx(0,"BUTTON","Envoyer", WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON,100,100,60,20,hDlg,(HMENU)IDOK,0,0);
hEnvoyer est le HWND du bouton et hDlg le HWND de la boite de dialogue mère. Si c'est une fenêtre la boucle des messages doit ressembler à ceci:
MSG Msg;
while (GetMessage(&Msg, 0, 0, 0))
{
if (!IsDialogMessage(hwnd, &Msg))
{
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
}
Ainsi, tout appui sur la touche Entrée engendre un WM_COMMAND correspondant au bouton Envoyer.