Commen faire pour désactiver X sur un formulaire

gros71 Messages postés 23 Date d'inscription jeudi 9 septembre 2004 Statut Membre Dernière intervention 7 décembre 2004 - 7 déc. 2004 à 16:14
Cramfr Messages postés 160 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 8 juillet 2008 - 14 déc. 2004 à 14:45
salut,

j'ai vu qu'il ya une source mais elle marche pas sous vba excel ou je sais pas comment il fau faire;

si quelqun pouvais me dire commen faire se serai sympas!
ca me prend le choux depuis un moment!
si possible une expli pour débutant parceque c'est mon cas.

merci d'avance
ALEX.

3 réponses

Cramfr Messages postés 160 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 8 juillet 2008
7 déc. 2004 à 16:39
Salut,

En effet les manipulation vb ne sont pas les mêmes que ceux en vba. Le problème c'est que seul la position est défini

Option Explicit

Public Const MF_BYPOSITION = &H400&
Public Const SC_CLOSE = 6
Public Const MF_ENABLED = &H0&
Public Const MF_GRAYED = &H1&

Public Declare Function EnableMenuItem Lib "user32" (ByVal hMenu As Long, ByVal wIDEnableItem As Long, ByVal wEnable As Long) As Long
Public Declare Function GetSystemMenu Lib "user32.dll" (ByVal hWnd As Long, ByVal bRevert As Long) As Long

Public Sub DisabledSystemMenu(hWnd As Long, RemoveClose As Boolean, pMenu As Long)
    Dim hMenu As Long
    Dim ireturn As Long
    hMenu = GetSystemMenu(hWnd, False)
    If RemoveClose Then
        EnableMenuItem hMenu, pMenu, MF_GRAYED Or MF_BYPOSITION
    Else
        EnableMenuItem hMenu, pMenu, MF_ENABLED Or MF_BYPOSITION
    End If
End Sub

Appelle la procedure comme ceci

DisabledSystemMenu MyHandleDeForm, True, SC_CLOSE
MyHandleDeForm étant l'Hwnd du formulaire biensûr

Cramsoturf le VBien en quête de nouveau programme :big)
0
gros71 Messages postés 23 Date d'inscription jeudi 9 septembre 2004 Statut Membre Dernière intervention 7 décembre 2004
7 déc. 2004 à 17:25
désolé pour la question mais "Hwnd" c quoi? je débute alors je connais pas encore tout le vocabulaire.

merci alex.
0
Cramfr Messages postés 160 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 8 juillet 2008
14 déc. 2004 à 14:45
Escuse pour la réponse tardive...
mais Hwnd c'est le handle de ta fenêtre.
Si tu l'as pas il faut que tu la recherche avec l'api
findwindow()

Sinon dans l'évènement QueryClose de ton formulaire tu peux mettre le code suivant:

If CloseMode = vbFormControlMenu Then
    Cancel = True
End If



Cramsoturf le VBien en quête de nouveau programme :big)
0
Rejoignez-nous