Soyez le premier à donner votre avis sur cette source.
Vue 10 283 fois - Téléchargée 808 fois
' PCPT [AFCK] 17 sept 2005 ' 'module SubClassing appelant la procédure de la Form appelante au changement du Focus ' Option Explicit ' ' Private Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" _ (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal _ wParam As Long, ByVal lParam As Long) As Long ' Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _ (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long ' Private Const WM_ACTIVATE = &H6 Private Const GWL_WNDPROC = (-4) ' Private Old_WindowProc As Long ' Public Enum eFocus LostFocus = 0 GetFocus End Enum ' ' ' Private Function New_WindowProc(ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long If Msg = WM_ACTIVATE Then New_WindowProc = True Call FORM_MAIN.ChangeControlsFocus(wParam) Else 'laisse la procédure indemne pour les autres messages New_WindowProc = CallWindowProc(Old_WindowProc, hwnd, Msg, wParam, lParam) End If End Function ' ' Public Sub StartSubclassing(hwnd As Long) Old_WindowProc = SetWindowLong(hwnd, GWL_WNDPROC, AddressOf New_WindowProc) End Sub ' ' Public Sub StopSubclassing(hwnd As Long) Dim lngRetVal As Long lngRetVal = SetWindowLong(hwnd, GWL_WNDPROC, Old_WindowProc) End Sub
PCPT tu m'a sorti d'une grosse galère.
Le source est vraiment impec, clair et bien débroussaillé (pas de trucs inutiles) donc chapeau et encore merci :)
et non, pas de design particulier cette fois, ce n'est pas du tout le but. seul le module est important (donc dispo sans dl).
la moto, c'est juste pour avoir un exemple de suite^^ (toujours mieux qu'un simple label)
PCPT
ça revien à un code en C enfaite (gestion des messages), code bon comme d'habitude, mais pas de superbe design cette foi ;)
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.