WM_USER capture du message pour effectuer une proc.
1 réponse
Jean
Bonjour,
J'aimerai faire une application qui réagisse au message WM_USER envoyée par
l'api "sendmessage". Comment puis-je capturer ce message envoyé au bon window
pour effectuer les bonnes actions ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Zoury
Salut Jean ! :O)
J'aimerai faire une application qui réagisse au message WM_USER envoyée par l'api "sendmessage". Comment puis-je capturer ce message envoyé au bon window pour effectuer les bonnes actions ?
En VB 6, le procédé s'appel du "subclassing". Il consiste à "intercepter" la procédure WndProc() de la fenêtre afin d'y ajouter/remplacer le traitement effectuer par le formulaire sur la réception de message Windows. L'API SetWindowLong() permet de modifier l'adresse de la fonction WndProc() du fenêtre.
Les deux exemples de subclassing que tu retrouves dans cette page te donneront plus de détails sur le concept du subclassing (bien commenté). http://www.mvps.org/vbvision/grouped_demos.htm#Subclassing
Google devrait aussi te permetter trouver plusieurs exemples d'implémentation de subclassing : http://groups.google.com/groups?hl=fr&lr=&num0&q=SetWindowLong+group%3A*fr.vb
Note que tu ne peux pas débugguer en pas à pas, ni mettre de point d'arrêt (breakpoint) lorsque tu fais du subclassing (à moins d'ajouter le support nécessaire pour y parvenir... c'est expliqué dans les exemples de vbvision).
-- Cordialement Yanick MVP pour Visual Basic
Salut Jean ! :O)
J'aimerai faire une application qui réagisse au message WM_USER envoyée
par
l'api "sendmessage". Comment puis-je capturer ce message envoyé au bon
window
pour effectuer les bonnes actions ?
En VB 6, le procédé s'appel du "subclassing". Il consiste à "intercepter" la
procédure WndProc() de la fenêtre afin d'y ajouter/remplacer le traitement
effectuer par le formulaire sur la réception de message Windows. L'API
SetWindowLong() permet de modifier l'adresse de la fonction WndProc() du
fenêtre.
Les deux exemples de subclassing que tu retrouves dans cette page te
donneront plus de détails sur le concept du subclassing (bien commenté).
http://www.mvps.org/vbvision/grouped_demos.htm#Subclassing
Google devrait aussi te permetter trouver plusieurs exemples
d'implémentation de subclassing :
http://groups.google.com/groups?hl=fr&lr=&num0&q=SetWindowLong+group%3A*fr.vb
Note que tu ne peux pas débugguer en pas à pas, ni mettre de point d'arrêt
(breakpoint) lorsque tu fais du subclassing (à moins d'ajouter le support
nécessaire pour y parvenir... c'est expliqué dans les exemples de vbvision).
J'aimerai faire une application qui réagisse au message WM_USER envoyée par l'api "sendmessage". Comment puis-je capturer ce message envoyé au bon window pour effectuer les bonnes actions ?
En VB 6, le procédé s'appel du "subclassing". Il consiste à "intercepter" la procédure WndProc() de la fenêtre afin d'y ajouter/remplacer le traitement effectuer par le formulaire sur la réception de message Windows. L'API SetWindowLong() permet de modifier l'adresse de la fonction WndProc() du fenêtre.
Les deux exemples de subclassing que tu retrouves dans cette page te donneront plus de détails sur le concept du subclassing (bien commenté). http://www.mvps.org/vbvision/grouped_demos.htm#Subclassing
Google devrait aussi te permetter trouver plusieurs exemples d'implémentation de subclassing : http://groups.google.com/groups?hl=fr&lr=&num0&q=SetWindowLong+group%3A*fr.vb
Note que tu ne peux pas débugguer en pas à pas, ni mettre de point d'arrêt (breakpoint) lorsque tu fais du subclassing (à moins d'ajouter le support nécessaire pour y parvenir... c'est expliqué dans les exemples de vbvision).