Enlever l'effet focus sur les boutons

Soyez le premier à donner votre avis sur cette source.

Snippet vu 4 941 fois - Téléchargée 41 fois

Contenu du snippet

Ce code n'est pas de moi :)

Pour éviter les pointillés autour des boutons quand on clique dessus.
Auteur : Philipp Weidmann

usage : NoFocusRect cmdMonbouton, True

true = pas de pointillés
false = des pointillés

@+

Source / Exemple :


'API Declarations
Private Declare Function SetWindowLong Lib "user32" _
Alias "SetWindowLongA" (ByVal hWnd As Long, _
ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function GetWindowLong Lib "user32" _
Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
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

'Constantes
Private Const GWL_WNDPROC = (-4)
Private Const WM_SETFOCUS = &H7

'Variables
Public StandardButtonProc As Long

Public Sub NoFocusRect(Button As Object, vValue As Boolean)
    If vValue = True Then 'le carré est visible
        'sauvegarde l'adresse de la procedure du bouton
        StandardButtonProc = GetWindowLong(Button.hWnd, GWL_WNDPROC)
        'Subclass le bouton pour controler ces messages windows
        SetWindowLong Button.hWnd, GWL_WNDPROC, AddressOf ButtonProc
    Else 'le carré est pas visible
        'enleve le subclass du bouton
        SetWindowLong Button.hWnd, GWL_WNDPROC, StandardButtonProc
    End If
End Sub

Public Function ButtonProc(ByVal hWnd As Long, _
ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    'la procédure qui reçoit tous les messages de windows
    'pour le subclassing du bouton
    On Error Resume Next
    Select Case uMsg&
        'Le bouton va recevoir le focus
        Case WM_SETFOCUS
        'sort de la procédure -> le message n'atteind pas le bouton
        Exit Function
    End Select
    'appel la procédure standard du bouton
    ButtonProc = CallWindowProc(StandardButtonProc, hWnd&, uMsg&, wParam&, lParam&)
End Function

A voir également

Ajouter un commentaire

Commentaires

anouar1991
Messages postés
4
Date d'inscription
mercredi 5 septembre 2007
Statut
Membre
Dernière intervention
27 janvier 2009
-
je ve le code source de prorat 1.9 /s'il n ya quelque peux m'aidez vous envoyer amoi la source a mon email king27@live.fr
anouar1991
Messages postés
4
Date d'inscription
mercredi 5 septembre 2007
Statut
Membre
Dernière intervention
27 janvier 2009
-
c bien cette source de trojan
cs_JLN
Messages postés
373
Date d'inscription
samedi 1 juin 2002
Statut
Membre
Dernière intervention
17 juin 2013
-
Très bien ce code, moi j'utilisais un contournement jusque là dans le mouseup qui consistait à donner le focus à un autre controle.

Bonne prog,
mySQL15
Messages postés
79
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
28 août 2010
-
queceque tu chie avec ton trojan Archange77 ?!
legear
Messages postés
9
Date d'inscription
mercredi 22 octobre 2003
Statut
Membre
Dernière intervention
28 avril 2009
-
excusez moi je suis débutant et je n'arrive pas a faire marcher cette source ! aidez moi please !

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.