Envoyer un message à un bouton ???

RV2931 Messages postés 185 Date d'inscription samedi 21 mai 2005 Statut Membre Dernière intervention 16 juillet 2016 - 14 mai 2006 à 21:02
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 - 17 mai 2006 à 03:14
Bonjour,

J'ai fait un programme qui contient un EditBox et un bouton qui est censé envoyer le contenu de l'EditBox.
Le truc c que je souhaite intercepter l'appui de la touche "enter" dans l'edit box pour envoyer le contenu sans avoir besoin de cliquer sur le bouton envoyer
J'ai réussi a intercepter la touche "enter" par un sous-classement, mais je ne sais pas comment faire après.

J'ai pensé à utiliser SendMessage pour envoyer un certain message au bouton pour lui dire que "j'appuie dessus virtuellement", mais je ne sais pas quels paramètres utiliser.
Je travaille avec le handle du Bouton, mais quoi mettre dans lParam et wParam ???

Je suis bloqué, et si qqu'un peut m'aider, ou alors me donner une autre façon de réaliser ce que je veut faire...

merci

3 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
14 mai 2006 à 21:33
C'est la fenetre mère qui reçoit les events pour ses controles depuis la pompe à messages.
On va donc lui envoyer à elle:
hwnd pour le handle EDIT vu que tu es dans le sous classement du EDIT:
PostMessage(GetParent(hwnd), WM_COMMAND, idBttn, (long) hBttn);
return 0;

idBttn => identifiant du bouton cible tel que défini dans resource.h
hBttn => HWND du bouton mais tu peux passer 0 si tu ne te sers pas du lParam dans l'event du bouton, à toi de voir.

ciao...
BruNews, MVP VC++
0
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
17 mai 2006 à 03:12
Salut,
Une autre méthode consiste à simuler le clic sur le bouton. Ca marche et, en plus, on voit le bouton s'enfoncer puis se relacher. Voici ce qu'il faut mettre dans la procédure de sous-classement de l'EditBox:
case WM_KEYDOWN:
if(wParam==VK_RETURN )
{
SendMessage(hwnd,WM_LBUTTONDOWN,0,0);
Sleep(100);
SendMessage((hwnd),WM_LBUTTONUP,0,0);
return 0;
}
0
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
17 mai 2006 à 03:14
hwnd correspond au HWND du bouton qui doit être déclaré en global.
0
Rejoignez-nous