Funktionreferenz


_WinAPI_DefSubclassProc

Beschreibung anzeigen in

Ruft den nächsten Handler in einer Fensterunterklassenkette auf.

#include <WinAPIShellEx.au3>
_WinAPI_DefSubclassProc ( $hWnd, $iMsg, $wParam, $lParam )

Parameter

$hWnd Das Handle des Fensters welches unterklassifiziert wird.
$iMsg Die zu sendende Nachricht.
$wParam Die nachrichtenspezifische Information.
$lParam Die nachrichtenspezifische Information.

Rückgabewert

Gibt den zurückgegebenen Wert abhängig von der gesendeten Nachricht zurück.

Bemerkungen

Der letzte Handler in der Unterklassenkette ist die originale Fensterprozedur für das angegebene Fenster.
Man muss nicht die Standardfensterprozedur aufrufen; diese Funktion ruft sie automatisch auf.

Siehe auch

Suche nach DefSubclassProc in der MSDN Bibliothek.

Beispiel

#include <Extras\WMDebug.au3>
#include <GUIConstantsEx.au3>
#include <WinAPIShellEx.au3>

OnAutoItExitRegister('OnAutoItExit')

; Create GUI
Global $g_hForm = GUICreate('Test ' & StringReplace(@ScriptName, '.au3', '()'))

; Register DLL callback that will be used as window subclass procedure
Global $g_hDll = DllCallbackRegister('_SubclassProc', 'lresult', 'hwnd;uint;wparam;lparam;uint_ptr;dword_ptr')
Global $g_pDll = DllCallbackGetPtr($g_hDll)

; Install window subclass callback
_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
    ; Declared in 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