SendMessage: erreur!!

sunvi Messages postés 34 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 25 août 2009 - 7 août 2009 à 12:55
sunvi Messages postés 34 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 25 août 2009 - 11 août 2009 à 09:44
Bonjour,
j'essaie de simuler le click sur un bouton d'une barre d'outils, j'ai le handle de ma fenêtre,l'id de mon controle, j'envoie le message suivant:
 SendMessage(handle, WM_COMMAND, idCtrl, 0); 

mais au lieu d'activer la fonctionnalité associé au bouton, mon code annule l'affichage de la barre d'outils!!!
je ne comprends pas
help!

4 réponses

racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
7 août 2009 à 15:34
Salut,
Il y'a surement un truc qui cloche ailleurs dans ton code car ton SendMessage est correct et devrait marcher. Assure-toi que handle et idCtrl sont bons.
0
sunvi Messages postés 34 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 25 août 2009
10 août 2009 à 09:56
pour le handle je suis sûre que c'est le bon, j'ai vérifié avec spy++...
pour idCtrl, je n'ai pas accès au code source du logiciel, donc...
avez vous une idée pour être sûr si c'est le bon ou pas?
0
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
10 août 2009 à 12:55
Avec Spy++ tu peux capturer tous les messages WM_COMMAND envoyés à la fenêtre. Ainsi, après clic sur le bouton voulu, tu verras son ID. Il est préférable dans ton SendMessage de mettre le HWND de la toolbar en dernier paramètre car il est possible qu'il soit utilisé par le programme espionné. A toi de vérifier.
0
sunvi Messages postés 34 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 25 août 2009
11 août 2009 à 09:44
ça aurait été bien si c'était si simple
seulement j'ai vérifié et re-vérifié une dizaine de fois: après clic sur mon buton, aucun WM_COMMAND n'est envoyé
c'est plutôt des:
* WM_PARENTNOTIFY fwEvent:WM_LBUTTONDOWN xPos:459 yPos:10
* WM_MOUSEACTIVATE hwndTopLevel:00010334 nHittest:HTCLIENT uMsg:WM_LBUTTONDOWN

et après je crois que ça commence à décrire les changements avec des WM_WINDOWPOSCHANGING...
:help:
0
Rejoignez-nous