dowichat
Messages postés8Date d'inscriptionlundi 5 mai 2003StatutMembreDernière intervention 1 octobre 2004
-
1 oct. 2004 à 00:43
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 2021
-
1 oct. 2004 à 09:13
Bonjours,
Je fais du subclasing pour intercepter des messages de windows, mais j'aimerait avoir la possibilité de faire du subclassing sur certain message de windows et laisser windows gèrer les autres message. Ceci est facile a faire mais mon problème est que quand je fais du pas a pas avec F8 le subclassing fais une boucle pour l'interception des message et j'aimerait qu'il n'y est pas de boucle. exemple:
Private Sub Form_Load()
OldProc = SetWindowLong(form1.hwnd, GWL_WNDPROC, AddressOf WindowProc)
End Sub
Function WindowProc(ByVal hwnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Select Case uMsg
Case message a intercepter
traitement
End Select
'ICI ON DIT A WINDOWS DE GÈRER LES AUTRE MESSAGE CE QUI FAIS FAIRE LA BOUCLE DE WINDOWPROC
WindowProc = CallWindowProc(OldProc, hwnd, uMsg, wParam, lParam)
End Function
Qand j'appuis sur F8 la sub form_load début et insère dans une variable oldproc lancienne procédure de windows.
Si je continue en appuyant sur F8 la function windowproc va faire une boucle sur toute les messages de mon programme mais moi jaimerait que la function windowproc soit déclancher par un évenement précis comme un click droit sur la form et que quand le traitement que je lui dit est fais, qu'il ne continue pas la boucle du windowproc mais qu'il attende que je fasse un click a nouveau pour revenir dans la funtion windowsproc.
Es ce possible ??? Si oui merci d'avance de me l'apprendre.
jpthomasset
Messages postés95Date d'inscriptionsamedi 19 juin 2004StatutMembreDernière intervention20 avril 2010 1 oct. 2004 à 08:47
Le principe de cette fonction est d'etre appelé tout le temps. Si tu as besoin de gerer certains messages, il te suffit de les identifier.
Par contre tu ne peux pas spécifier les messages pour lesquels cette fonction WindowProc est appelé.
Maintenant, tu peux aussi utiliser un controle du genre de celui de VbAccelerator qui te permet de faire du subclassing, et surtout celui-ci te permet de filtrer les messages que tu veux recevoir.