Envoi de message à windowProcedure

mohdaef Messages postés 68 Date d'inscription vendredi 23 novembre 2007 Statut Membre Dernière intervention 14 mars 2012 - 11 sept. 2009 à 23:12
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 - 16 sept. 2009 à 20:17
Bonsoir

Je souhaite envoyer un message personalisé depuis un thread à windowProcedure(...), pour qu'il soit traité comme n'importe quel autre message.

J'ai essayé avec SendMessage(...), PostMessage(...), SendNotifyMessage(...).

Aucune de ces fonctions ne fonctionnent l'évènement n'est pas déclanché.

Est-ce logique ? Y ayrait-il une méthode spécifique lorsque l'appel proviens d'un thread ?

Merci.

7 réponses

racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
12 sept. 2009 à 14:02
Salut,
Non, il n'y a rien de spécial pour les threads. Tu peux envoyer un message personnalisé à la procédure d'une fenêtre en utilisant son HWND. Assure-toi que ce dernier est correct.
0
mohdaef Messages postés 68 Date d'inscription vendredi 23 novembre 2007 Statut Membre Dernière intervention 14 mars 2012
12 sept. 2009 à 15:22
Salut.

J'ai bien vérifié que le HWND soit le correct et c'est le cas. Et pourtant aucun message ne parvient à la procédure, que soit des messages personalisés ou bien des messages existant comme WM_CLOSE.

Quelque chose bloque mais quoi ?? Là est la question.
0
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
14 sept. 2009 à 05:34
Il y'a surement un truc qui cloche dans ton code.
0
mohdaef Messages postés 68 Date d'inscription vendredi 23 novembre 2007 Statut Membre Dernière intervention 14 mars 2012
15 sept. 2009 à 13:06
Salut

J'ai fait quelques test et il resulte que lorsque j'appelle une méthode pour envoyer un message que se soit directement dans le thread ou bien par le biai d'une autre méthode qui est appelée par le thread, cela ne fonctionne pas.

Mais si je met cette méthode ailleur ça fonctionne.

Pour essayer j'ai mis un SendMessage dans le destructeur d'un classe.
Si j'appelle le destructeur depuis windowsProcedure ou bien depuis une méthode/classe qui à été déclaré et instancié depuis cette dernière cela fonctionne.
Mais si j'appelle le destructeur depuis mon thread le message n'est pas transmit.
C'est comme si le thread ne fesait pas partie de la même application et du coût l'application ne pouvant pas reçevoir de message depuis l'extérieur refuse la réception.

Qu'est-ce que vous en pensez ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
15 sept. 2009 à 20:35
Normalement, on peut envoyer des messages à la procédure d'une fenêtre même depuis un autre processus. Autrement dit, depuis une autre application. Il suffit d'avoir son HWND correct.
0
mohdaef Messages postés 68 Date d'inscription vendredi 23 novembre 2007 Statut Membre Dernière intervention 14 mars 2012
15 sept. 2009 à 21:35
Bonsoir,
C'est bien ce que je pensait, mais la pratique ne suit pas toujours la théorie et des faits étranges surviennent alors qu'il ne devrait pas.

...
0
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
16 sept. 2009 à 20:17
Focalise sur ton code. En programmation la pratique suit bien la théorie sinon ce ne serait plus de la programmation. Essaie de travailler en Win32 API en C pour comprendre exactement comment les choses se passent et bien maitriser le fonctionnement de ton code. Je fais souvent des applications avec des threads qui envoient des messages aux fenêtres et tout ce passe toujours exactement comme prévu.
0
Rejoignez-nous