Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

ENLEVER L'EFFET FOCUS SUR LES BOUTONS


Information sur la source

Catégorie :API Niveau : Débutant Date de création : 20/06/2002 Date de mise à jour : 20/06/2002 20:32:22 Vu : 2 850

Note :
9 / 10 - par 1 personne
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (7)
Ajouter un commentaire et/ou une note

Description

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

  • '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
'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

Commentaires et avis

signaler à un administrateur
Commentaire de OphidiaN le 21/06/2002 12:13:30

Très bien ;-)

signaler à un administrateur
Commentaire de archange77 le 21/06/2002 16:24:01

est ce que ton trojan est connu ?????
qu'est ce que ça fait si on clic deux fois sur ton trojan juste pour le tester ????
merçi@@++

signaler à un administrateur
Commentaire de legear le 25/01/2005 14:37:40

excusez moi je suis débutant et je n'arrive pas a faire marcher cette source ! aidez moi please !

signaler à un administrateur
Commentaire de mySQL15 le 21/11/2007 14:05:04

queceque tu chie avec ton trojan  Archange77 ?!

signaler à un administrateur
Commentaire de JLN le 29/05/2008 11:48:33

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,

signaler à un administrateur
Commentaire de anouar1991 le 23/09/2008 00:19:14

c bien cette source de trojan

signaler à un administrateur
Commentaire de anouar1991 le 23/09/2008 00:21:22

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

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version


HTC Magic

Entre 429€ et 429€


Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,281 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.