begin process at 2012 02 16 16:27:43
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Formulaire

 > AJOUTER UN BOUTON DANS LA BARRE DE TITRE

AJOUTER UN BOUTON DANS LA BARRE DE TITRE


 Information sur la source

Note :
7,64 / 10 - par 11 personnes
7,64 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Formulaire Classé sous :ajouter, bouton, barre, titre Niveau :Expert Date de création :26/06/2001 Vu / téléchargé :17 690 / 688

Auteur : max12

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (7)
Ajouter un commentaire et/ou une note


 Description

Cliquez pour voir la capture en taille normale
C'est pour ajouter un bouton dans la barre de titre
Mettez sa dans un module

Source

  • Option Explicit
  • 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 GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As Rect) As Long
  • Private Declare Function GetParent Lib "user32" (ByVal hwnd As Long) As Long
  • Private Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
  • Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
  • Private Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook&, ByVal lpfn&, ByVal hmod&, ByVal dwThreadId&) As Long
  • Private Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook&) As Long
  • Private Declare Function CreateWindowEx Lib "user32" Alias "CreateWindowExA" (ByVal dwExStyle As Long, ByVal lpClassName As String, ByVal lpWindowName As String, ByVal dwStyle As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hWndParent As Long, ByVal hMenu As Long, ByVal hInstance As Long, lpParam As Any) As Long
  • Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
  • Private Type Rect
  • Left As Long
  • Top As Long
  • Right As Long
  • Bottom As Long
  • End Type
  • Private Type CWPSTRUCT
  • lParam As Long
  • wParam As Long
  • Message As Long
  • hwnd As Long
  • End Type
  • Const WM_MOVE = &H3
  • Const WM_SETCURSOR = &H20
  • Const WM_NCPAINT = &H85
  • Const WM_COMMAND = &H111
  • Const SWP_FRAMECHANGED = &H20
  • Const GWL_EXSTYLE = -20
  • Private WHook&
  • Private ButtonHwnd As Long
  • Public laFrm As Form
  • Event Click()
  • Public Sub InstallBouton()
  • ButtonHwnd& = CreateWindowEx
  • 'REGARDER PRÈS DE LA * REMPLACER POUR CHANGER LE TEXTE DU Bouton
  • (0&, "Button", "*", &H40000000, 50, 50, 14, 14, laFrm.hwnd, 0&, App.hInstance, 0&)
  • Call ShowWindow(ButtonHwnd&, 1)
  • WHook = SetWindowsHookEx(4, AddressOf HookProc, 0, App.ThreadID)
  • Call SetWindowLong(ButtonHwnd&, GWL_EXSTYLE, &H80)
  • Call SetParent(ButtonHwnd&, GetParent(laFrm.hwnd))
  • End Sub
  • Public Sub DesinstallBouton()
  • Call UnhookWindowsHookEx(WHook)
  • Call SetParent(ButtonHwnd&, laFrm.hwnd)
  • End Sub
  • Private Function HookProc&(ByVal nCode&, ByVal wParam&, Inf As CWPSTRUCT)
  • Dim FormRect As Rect
  • Static LastParam&
  • If Inf.hwnd = GetParent(ButtonHwnd&) Then
  • If Inf.Message = WM_COMMAND Then
  • Select Case LastParam
  • Case ButtonHwnd&: MsgBox "salut"
  • End Select
  • ElseIf Inf.Message = WM_SETCURSOR Then
  • LastParam = Inf.wParam
  • End If
  • ElseIf Inf.hwnd = laFrm.hwnd Then
  • If Inf.Message = WM_NCPAINT Or Inf.Message = WM_MOVE Then
  • Call GetWindowRect(laFrm.hwnd, FormRect)
  • Call SetWindowPos(ButtonHwnd&, 0, FormRect.Right - 75, FormRect.Top + 6, 17, 14, SWP_FRAMECHANGED)
  • End If
  • End If
  • End Function
Option Explicit
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 GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As Rect) As Long
Private Declare Function GetParent Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Private Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook&, ByVal lpfn&, ByVal hmod&, ByVal dwThreadId&) As Long
Private Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook&) As Long
Private Declare Function CreateWindowEx Lib "user32" Alias "CreateWindowExA" (ByVal dwExStyle As Long, ByVal lpClassName As String, ByVal lpWindowName As String, ByVal dwStyle As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hWndParent As Long, ByVal hMenu As Long, ByVal hInstance As Long, lpParam As Any) As Long
Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Private Type Rect
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
End Type
Private Type CWPSTRUCT
    lParam As Long
    wParam As Long
    Message As Long
    hwnd As Long
End Type
Const WM_MOVE = &H3
Const WM_SETCURSOR = &H20
Const WM_NCPAINT = &H85
Const WM_COMMAND = &H111
Const SWP_FRAMECHANGED = &H20
Const GWL_EXSTYLE = -20
Private WHook&
Private ButtonHwnd As Long
Public laFrm As Form
Event Click()
Public Sub InstallBouton()
    ButtonHwnd& = CreateWindowEx
'REGARDER PRÈS DE LA * REMPLACER POUR CHANGER LE TEXTE DU Bouton
(0&, "Button", "*", &H40000000, 50, 50, 14, 14, laFrm.hwnd, 0&, App.hInstance, 0&)
    Call ShowWindow(ButtonHwnd&, 1)
    WHook = SetWindowsHookEx(4, AddressOf HookProc, 0, App.ThreadID)
    Call SetWindowLong(ButtonHwnd&, GWL_EXSTYLE, &H80)
    Call SetParent(ButtonHwnd&, GetParent(laFrm.hwnd))
End Sub
Public Sub DesinstallBouton()
    Call UnhookWindowsHookEx(WHook)
    Call SetParent(ButtonHwnd&, laFrm.hwnd)
End Sub
Private Function HookProc&(ByVal nCode&, ByVal wParam&, Inf As CWPSTRUCT)
    Dim FormRect As Rect
    Static LastParam&
    If Inf.hwnd = GetParent(ButtonHwnd&) Then
        If Inf.Message = WM_COMMAND Then
            Select Case LastParam
                Case ButtonHwnd&: MsgBox "salut"
            End Select
        ElseIf Inf.Message = WM_SETCURSOR Then
            LastParam = Inf.wParam
        End If
        ElseIf Inf.hwnd = laFrm.hwnd Then
        If Inf.Message = WM_NCPAINT Or Inf.Message = WM_MOVE Then
            Call GetWindowRect(laFrm.hwnd, FormRect)
            Call SetWindowPos(ButtonHwnd&, 0, FormRect.Right - 75, FormRect.Top + 6, 17, 14, SWP_FRAMECHANGED)
        End If
    End If
End Function  

 Conclusion

Exécuter
set Lafrm=Me
call installbouton

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source avec une capture VBFRANCE MESSENGER + SERVEUR, ANCIENNE SOURCE
Source avec Zip Source avec une capture ÉDITEUR HEXADÉCIMAL
Source avec Zip Source avec une capture ÉCRAN DE VEILLE, APERÇU, OPTIONS (SANS DIRECT X) RESSEMBLE U...
Source avec Zip Source avec une capture DÉFORMER UNE IMAGE, FAIRE DES VAGUES (SIN) (UPDATED)
Source avec Zip Source avec une capture ANALYSEUR MATHÉMATIQUE

 Sources de la même categorie

Source avec Zip GEST COTISATION - ASSOCIATION par MOHA555
Source avec Zip HSCROLLBAR POUR L'ARRIÈRE PLAN par 320C
Source avec Zip Source avec une capture Source .NET (Dotnet) METTRE VOTRE FORM VB.NET EN PLEINE ÉCRAN par Gabilach
RECHERCHE DANS UNE LISTE À PARTIR D'UN CHAMP TEXTE par jmeunier
Source avec Zip GESTION DES COMSOMMABLE par gboraud

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture Source .NET (Dotnet) BARRE DE TITRE DE LA FENÊTRE AVEC SON PROPRE DÉSIGN. par et1
Source avec Zip Source avec une capture BOUTON RÉDUIRE DANS SYSTRAY DANS LA BARRE DE TITRE AU LOOK X... par DARKSIDIOUS
Source avec Zip Source avec une capture BARRE DE TITRE ANIMÉE par HEproduct
Source avec Zip BARRE DE TITRE ANIMÉE par HE Product ®
Source avec Zip RECUPERER LA COULEUR DE LA BARRE DE TITRE par Nix

Commentaires et avis

Commentaire de cyrilp le 08/01/2002 17:28:32

Sympa ;-)

Commentaire de warwolf7 le 29/04/2003 22:30:09

oubliez ce code si vous avez win XP

Commentaire de psy4meuh le 30/06/2003 13:10:37

Cool cool !
Marche Nockel, bien pratique!

Commentaire de Fraggy le 10/07/2003 00:53:43

Je confirme, j'ai testé ce code sous WinXP et il ne fonctionne pas avec WinXP. Peut etre est-il nickel sous les autres OS. Domage que personne n'ai encore pensé a l'adapter pou XP. Merci quand à max12
pour le code et a flint pour la correction Bien que je ne puisse pas utiliser ce code, 8/10 ;)

Commentaire de dalefou le 26/10/2004 15:38:37

Bonjour,
je suis plus que débutant en VB et j'ai donc bien réussi à faire apparaitre le bouton, mais je ne comprend pas comment lui associer une action ?
Merci d'avance de votre aide !!

Commentaire de DARKSIDIOUS le 05/02/2005 13:44:00 administrateur CS

Pour ceux qui veulent la même chose, mais qui gère bien les thèmes XP, et qui est compatible avec toutes les versions de Windows :

http://www.vbfrance.com/code.aspx?id=27709

DarK Sidious

Commentaire de patricktoledano le 26/08/2007 10:56:19

Bonjour à tous

J'essaye de convertir ce code en VBA pour MS/Access.....

J'ai remplacé le N° de thread de ma form par 0 car je ne le connais pas. J'i des résultats variables et surprenants (dans la win de access, n'importe où dans ma forme...). Je souhaite mes propres icones/images en liau et place des boutons standards (et non un "x") ou tout autre caractère.

D'autre part, je souhaite complètement "customisé" la barre de tittre de ma forme en remplaçant les boutons d'origine uniquement pour cette forme et de plus une image à la place du "fond" de barre de titre standard XP.

Par ailleurs, ma forme est sans bard car j'utilise le GDI pour cela (coins arrondis).

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

ajouter bouton dans barre titre [ par lomig.menez ] Bonjour, j'aurai voulu savoir si quelqu'un savait comment faire pour ajouter un bouton dans la barre de titre d'une forme, a coté du Minbutton et Maxb Bouton de barre de titre URGENT [ par Thibald ] Il faut que je fasse un programme ayant dans la barre de titre un quatrième bouton (à côté des boutons agrandire, fermer ...) ou dans le menu contextu Atacher un evenement au bouton "Maximiser" de la barre de titre [ par helorem ] Comment peut-on detecter un clique sur un des bouton "reduire,maximiser,fermer" de la barre de titre ??je m'interesse surtout au bouton "Maximiser", a ajouter un bouton dans une barre d'outils en VB 6.0 ??? HELP ME !!! [ par youkizouki ] Save vous comment RAJOUTER UN BOUTTON AVEC UNE IMAGE avec visual basic 6.0 dans une barre d'outil créée lors de la création d Ajouter un bouton à la barre des tâches [ par fallenmax ] Bonjour,J'aimerais savoir s'il est possible d'ajouter un bouton (qui ouvrirais un menu personnalisé) dans la barre des tâches, mais pas dans la sectio Ajout d'un enregistrement [ par lydiemml ] Bonjour à tous.J'ai un formulaire sur lequel j'ai des contrôles de différents types : des textbox, combobox, checkbox, ... Ils sont tous reliés à des Clic souris sur barre de titre d'application [ par jibus ] Bonjour, bonjour, Bon voilà mon problème, j'aimerai savoir si il existe une API ou un quelconque moyen de déterminer si on a cliqué sur la barre de ti Barre de titre [ par ouafaekarim ] comment faire pour cacher la barre de titre d'un form?merci Titre de la barre des tâches [ par Gunshin82 ] Bonjour à tous,J'ai chercher un peu partout sur le net avant de posté mais je n'ai rien trouvé donc me voilàs. J'ai fait une petite application pour c Actualiser les données [ par Philppe2007 ] Bonjour je vous demande de m'aider sur une question j'ai un bouton ajouter, un bouton actualiser et des textbox j'ai un probléme avec le bouton actu


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,562 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales