Touche entree et echape sur listview [Résolu]

Messages postés
34
Date d'inscription
samedi 25 septembre 2010
Statut
Membre
Dernière intervention
20 février 2014
- - Dernière réponse : sadounno
Messages postés
34
Date d'inscription
samedi 25 septembre 2010
Statut
Membre
Dernière intervention
20 février 2014
- 20 févr. 2014 à 18:27
Bonjour,
j'ai une listview sur un dialog sur lequel je ne peux pas intercepter keydown pour vk_return ou escape.
et si je rentre le meme code si le listview est dans une window main sa marche.
quelle est la methode svp
Merci d'avance

--
Afficher la suite 

4 réponses

Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
13
Commenter la réponse de BruNews
Messages postés
34
Date d'inscription
samedi 25 septembre 2010
Statut
Membre
Dernière intervention
20 février 2014
0
Merci
Salut, j'ai bien beau essayé mais sa fonctionne pas, j'arrive pas a intercepter le return dans une dialog??
il me manque quelques explication SVP

--
Commenter la réponse de sadounno
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
13
0
Merci
OUPS, tu es sur une DIALOG.

Dialog n'est pas tout à fait une fenetre "normale", ENTER et CANCEL sont hookés.

Au plus simple, tu traites sur IDOK de la dialog:
INT_PTR AppDlgProc(HWND hdlg, UINT mssg, WPARAM wParam, LPARAM lParam)
{
switch(mssg) {
case WM_INITDIALOG:
onMainInit(hdlg);
return 1;
case WM_COMMAND:
switch(wParam) {
case IDOK:
if(GetFocus() == hlvDEMO) onLvEnter();
return 0;
case IDCANCEL: EndDialog(hdlg, 0);
}
}
return 0;
}



ciao...
Commenter la réponse de BruNews
Messages postés
34
Date d'inscription
samedi 25 septembre 2010
Statut
Membre
Dernière intervention
20 février 2014
0
Merci
Merci beaucoup sa ma ete d'une grande aide
au final voici le code pour aider ceux qui ont besoin aussi
.elseif eax==WM_COMMAND
mov eax, wParam
mov edx,wParam
shr edx,16

.if((wParam)==IDOK);------==========...........IDOK..............=================------
invoke GetDlgItem,hWin,5101
mov hedit1, eax
.if eax == hedit1
invoke SendMessage,hList,LVM_GETNEXTITEM,-1,LVNI_FOCUSED
.if eax!=-1
;

invoke SendMessage,hList,LVM_GETNEXTITEM,-1,LVNI_FOCUSED
mov lvi.iItem,eax
mov lvi.iSubItem,0 ;--- 0 c'est l'index

mov lvi.imask,LVIF_TEXT
lea eax,buffer
mov lvi.pszText,eax
mov lvi.cchTextMax,256
invoke SendMessage,hList,LVM_GETITEM,0,addr lvi
invoke SetDlgItemText,hWin,1021,addr buffer
invoke DetailQuery,hWin

;invoke MessageBox,hWin,addr AppName,addr AppName,MB_ICONEXCLAMATION
.endif
.endif
.endif

.if((wParam)==IDCANCEL);------==========...........IDCANCEL..............=================------
invoke GetDlgItem,hWin,5101
mov hedit1, eax
.if eax == hedit1

invoke GetDlgItem,hWnd,IDC_EDT_NOM
invoke SetFocus,eax
invoke SetFocus,IDC_EDT_NOM

.endif
.endif


Merci beaucoup, c'etait simple mais sa ma bloqué

--
Commenter la réponse de sadounno