Installe ou met � jour une sous-classe de fen�tre de rappel
#include <WinAPIShellEx.au3>
_WinAPI_SetWindowSubclass ( $hWnd, $pSubclassProc, $idSubClass [, $pData = 0] )
$hWnd | Handle de la fen�tre en cours de sous-classement. |
$pSubclassProc | Un pointeur sur une proc�dure fen�tre. Ce pointeur et l'ID de sous-classe identifient de mani�re unique cette sous-classe de rappel. (Voir MSDN pour plus d'informations) |
$idSubClass | L'ID de la sous-classe. |
$pData | [optionnel] Les donn�es de r�f�rence. Cette valeur est transmise � la proc�dure de la sous-classe. La signification de cette valeur est d�termin�e par l'application appelante. |
Succ�s: | Retourne True. |
�chec: | Retourne False. |
Les sous-classes de rappel sont identifi�es par la combinaison de l'adresse de rappel et l'ID de la sous-classe d�fini par l'appelant.
Si la paire adresse de rappel et ID n'ont pas encore �t� install�e, alors cette fonction installe la sous-classe, sinon, cette fonction met simplement � jour les donn�es de r�f�rence.
Consultez SetWindowSubclass dans la librairie MSDN.
#include <Extras\WMDebug.au3> #include <GUIConstantsEx.au3> #include <WinAPIShellEx.au3> OnAutoItExitRegister('OnAutoItExit') ; Cr�e une GUI Global $g_hForm = GUICreate('Test ' & StringReplace(@ScriptName, '.au3', '()')) ; Enregistre une fonction de rappel DLL qui sera utilis�e en tant que proc�dure de sous-classe de fen�tre Global $g_hDll = DllCallbackRegister('_SubclassProc', 'lresult', 'hwnd;uint;wparam;lparam;uint_ptr;dword_ptr') Global $g_pDll = DllCallbackGetPtr($g_hDll) ; Installe le rappel de la sous-classe de fen�tre _WinAPI_SetWindowSubclass($g_hForm, $g_pDll, 1000, 0) GUISetState(@SW_SHOW) Do Until GUIGetMsg() = $GUI_EVENT_CLOSE Func _SubclassProc($hWnd, $iMsg, $wParam, $lParam, $iID, $pData) #forceref $iID, $pData ; D�clar�e dans WMDebug.au3 _WM_Debug($hWnd, $iMsg, $wParam, $lParam) Return _WinAPI_DefSubclassProc($hWnd, $iMsg, $wParam, $lParam) EndFunc ;==>_SubclassProc Func OnAutoItExit() _WinAPI_RemoveWindowSubclass($g_hForm, $g_pDll, 1000) DllCallbackFree($g_hDll) EndFunc ;==>OnAutoItExit