Comment Modifier le menu de la barre des titres???? Siouplaaaiiiitttt!!!

Résolu
cs_LokR Messages postés 14 Date d'inscription dimanche 10 mars 2002 Statut Membre Dernière intervention 4 septembre 2005 - 8 août 2004 à 22:13
cs_azerty25 Messages postés 1114 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 6 mai 2007 - 9 août 2004 à 12:19
Salut! Toi, Programmeur ki fait faire a ses programmes tt ce kil ve kil fasse (aux autres aussi.. :-P)

Je voudrais savoir comment on pe personnaliser le menu ki s'affiche lorsqu'on clcik sur le bouton droit sur la barre des titres (vous savez la ou c'est affiché Fermer, redimensionner etc...)
je voudrais rajouter une ou deux options :-D

bon je te laisse (ou vous laisse, je c pa moi, petetre ke vous etes siamois ou ke je vous dois le respect, pa tre drole mais j'essaye de finir sur une touche d'humour, pa evident a cette heire-ci...)

Vive La Réunion!!!!
(Ni ArTrouve!)

4 réponses

cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
8 août 2004 à 23:19
Tu crée un nouveau projet tu ajoute un module et dans le module tu tape :

Option Explicit

Public Declare Function GetSubMenu Lib "user32" (ByVal hMenu As Long, ByVal nPos As Long) As Long
Public Declare Function AppendMenu Lib "user32" Alias "AppendMenuA" (ByVal hMenu As Long, ByVal wFlags As Long, ByVal wIDNewItem As Long, ByVal lpNewItem As Any) As Long
Public Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Public 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

Public Const WM_SYSCOMMAND As Long = &H112
Public Const GWL_WNDPROC   As Long = (-4)
Public Const SC_USER       As Long = &HF700&

Public mOldProc            As Long

Function WindowProc(ByVal hwnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    Select Case uMsg
    Case WM_SYSCOMMAND
        Select Case (wParam And &HFFF0&)
        Case SC_USER: MsgBox "Vous avez appuyer sur le menu", vbInformation
        Case Else: WindowProc = CallWindowProc(mOldProc, hwnd, uMsg, wParam, lParam)
        End Select
    Case Else: WindowProc = CallWindowProc(mOldProc, hwnd, uMsg, wParam, lParam)
    End Select
End Function


dans la form1 tu tape

Option Explicit

Private Sub Form_Load()
    AppendMenu GetSystemMenu(hwnd, 0), 0, SC_USER, "*Nouveau*"
    mOldProc = GetWindowLong(hwnd, GWL_WNDPROC)
    SetWindowLong hwnd, GWL_WNDPROC, AddressOf WindowProc
End Sub

Private Sub Form_Unload(Cancel As Integer)
    SetWindowLong hwnd, GWL_WNDPROC, mOldProc
End Sub


voila ce code ajoute un menu et gere le click

@+

E.B.
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
8 août 2004 à 22:38
Salut LokR
Tu sais que t'es drôle ?
Bref, consulte ce lien et regarde dans la capture si on parle bien du même menu. Ca s'appelle le "Menu système".

Vala
Jack
0
vlad2i Messages postés 285 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 13 février 2005
8 août 2004 à 22:59
Si c'est effectivement ce que Jack te montre que tu veux, il y a quelques codes...

Tu peux ajouter qqch à ce menu (via l'API AppendMenu) mais pour savoir que l'on clickk...

Ou tu SubClass, ou tu Hook

Et autant te dire que aucun des deux n'est à la portée d'un débutant... Tu devrais trouver des infos ici, ou sur www.vbaccelerator.com sur comment faire...
0
cs_azerty25 Messages postés 1114 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 6 mai 2007
9 août 2004 à 12:19
C'est trop génial, merci EBArtSoft (meme si c pas moi qui ai posé la question ! ;))

@Z3RtY25 ==
0
Rejoignez-nous