sonoboss
Messages postés178Date d'inscriptionlundi 17 juin 2002StatutMembreDernière intervention 2 octobre 2007 22 janv. 2003 à 11:42
essaye ca :
Public Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long
Public Declare Function GetMenuItemCount Lib "user32" (ByVal hMenu As Long) As Long
Public Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
Public Declare Function DrawMenuBar Lib "user32" (ByVal hwnd As Long) As Long
Public Function DesactiveX(ByVal frm As Form)
Dim hMenu As Long
Dim nCount As Long
hMenu = GetSystemMenu(frm.hwnd, 0)
nCount = GetMenuItemCount(hMenu)
Call RemoveMenu(hMenu, nCount - 1, MF_REMOVE Or MF_BYPOSITION)
Call RemoveMenu(hMenu, nCount - 2, MF_REMOVE Or MF_BYPOSITION)
DrawMenuBar frm.hwnd
End Function
et tu l'appelle comme ca :
call desactiveX(Me)
Bon courage!
Le jour où la merde vaudra de l'or, les pauvres naîtons sans trou du cul!
cs_tisa
Messages postés13Date d'inscriptionjeudi 2 janvier 2003StatutMembreDernière intervention23 janvier 2003 23 janv. 2003 à 15:59
J'ai tout passé dans un module et appeler la fonction dans l'activation du formulaire, mais j'ai toujours cette erreur de complilation:
"type defini par l'utilisateur non defini"
Merci de m'aider...
Vous n’avez pas trouvé la réponse que vous recherchez ?
pelw
Messages postés148Date d'inscriptiondimanche 12 janvier 2003StatutMembreDernière intervention14 février 20056 24 janv. 2003 à 09:27
Essaye ceci :
1. Dans un module
Public Const MF_BYPOSITION = &H400
Public Const MF_REMOVE = &H1000
Public Declare Function DrawMenuBar Lib "user32" (ByVal hWnd As Long) As Long
Public Declare Function GetMenuItemCount Lib "user32" (ByVal hMenu As Long) As Long
Public Declare Function GetSystemMenu Lib "user32" (ByVal hWnd As Long, ByVal bRevert As Long) As Long
Public Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
pelw
Messages postés148Date d'inscriptiondimanche 12 janvier 2003StatutMembreDernière intervention14 février 20056 24 janv. 2003 à 13:15
On pourrait aussi imaginer une solution un peu plus simple, en laissant la croix active, mais en affichant un message d'erreur si l'utilisateur clique dessus :
Dans une UserForm
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = vbFormControlMenu Then
Cancel = True
MsgBox "Veuillez quitter à l'aide du bouton ""Fermer"" !"
End If
End Sub