Touche entree et echape sur listview

Résolu
sadounno Messages postés 34 Date d'inscription samedi 25 septembre 2010 Statut Membre Dernière intervention 20 février 2014 - 17 févr. 2014 à 19:49
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

--

4 réponses

BruNews Messages postés 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
18 févr. 2014 à 12:37
0
sadounno Messages postés 34 Date d'inscription samedi 25 septembre 2010 Statut Membre Dernière intervention 20 février 2014
18 févr. 2014 à 21:58
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

--
0
BruNews Messages postés 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
19 févr. 2014 à 17:49
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...
0
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
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é

--
0