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 

Votre réponse

4 réponses

Messages postés
21054
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
7 novembre 2014
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
21054
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
7 novembre 2014
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