Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Icône + supprimer croix de fermeture dans la barre de titre

2 réponses
Avatar
Room |312|
Bonsoir,

J'ai not=E9 avec int=E9r=EAt la possibilit=E9 de supprimer la=20
croix de fermeture d'un userform ; idem pour ce qui est=20
d'y mettre une ic=F4ne. En revanche, =E7a ne fonctionne pas=20
lorsque je veux combiner les deux : pas de croix de=20
fermeture + 1 ic=F4ne. Soit c'est l'un, soit c'est l'autre.=20
Comment faire ? Merci.

2 réponses

Avatar
Michel Pierron
Bonsoir Room |312|;
Hé oui, il faut choisir; par contre, tu peux facilement inhiber la croix de
fermeture (auquel cas, ne pas oublier de placer un bouton qui ferme
l'userform):
Private Declare Function FindWindow& Lib "user32" Alias _
"FindWindowA" (ByVal lpClassName$, ByVal lpWindowName$)
Private Declare Function SetWindowLong& Lib "user32" Alias _
"SetWindowLongA" (ByVal hwnd&, ByVal nIndex&, ByVal dwNewLong&)
Private Declare Function ExtractIcon& Lib "shell32.dll" _
Alias "ExtractIconA" (ByVal hInst&, ByVal lpszExeFileName$ _
, ByVal nIconIndex&)
Private Declare Function SendMessage& Lib "user32" Alias _
"SendMessageA" (ByVal hwnd&, ByVal wMsg&, ByVal wParam% _
, ByVal lParam As Any)
Private Declare Function GetSystemMenu& Lib "user32" _
(ByVal hwnd&, ByVal bRevert&)
Private Declare Function DrawMenuBar& Lib "user32" (ByVal hwnd&)
Private Declare Function DeleteMenu& Lib "user32" _
(ByVal hMenu&, ByVal nPosition&, ByVal wFlags&)

Private Sub UserForm_Initialize()
Dim hwnd&, IcoPath$, hIcon&
hwnd = FindWindow(vbNullString, Me.Caption)
IcoPath = ThisWorkbook.Path & "msn.ico"
If Len(Dir(IcoPath)) Then
hIcon = ExtractIcon(0, IcoPath, 0)
SendMessage hwnd, &H80, 0, hIcon
End If
DeleteMenu GetSystemMenu(hwnd, 0), &HF060, 0&
DrawMenuBar hwnd
End Sub

Private Sub CommandButton1_Click()
Unload Me
End Sub

MP

"Room |312|" a écrit dans le message
de news:461801c47343$a03d6e00$
Bonsoir,

J'ai noté avec intérêt la possibilité de supprimer la
croix de fermeture d'un userform ; idem pour ce qui est
d'y mettre une icône. En revanche, ça ne fonctionne pas
lorsque je veux combiner les deux : pas de croix de
fermeture + 1 icône. Soit c'est l'un, soit c'est l'autre.
Comment faire ? Merci.
Avatar
Room |312|
Va pour la croix inhibée ! Merci bien.
-----Message d'origine-----
Bonsoir Room |312|;
Hé oui, il faut choisir; par contre, tu peux facilement
inhiber la croix de

fermeture (auquel cas, ne pas oublier de placer un
bouton qui ferme

l'userform):
Private Declare Function FindWindow& Lib "user32" Alias _
"FindWindowA" (ByVal lpClassName$, ByVal lpWindowName$)
Private Declare Function SetWindowLong& Lib "user32"
Alias _

"SetWindowLongA" (ByVal hwnd&, ByVal nIndex&, ByVal
dwNewLong&)

Private Declare Function ExtractIcon& Lib "shell32.dll" _
Alias "ExtractIconA" (ByVal hInst&, ByVal
lpszExeFileName$ _

, ByVal nIconIndex&)
Private Declare Function SendMessage& Lib "user32" Alias
_

"SendMessageA" (ByVal hwnd&, ByVal wMsg&, ByVal wParam% _
, ByVal lParam As Any)
Private Declare Function GetSystemMenu& Lib "user32" _
(ByVal hwnd&, ByVal bRevert&)
Private Declare Function DrawMenuBar& Lib "user32"
(ByVal hwnd&)

Private Declare Function DeleteMenu& Lib "user32" _
(ByVal hMenu&, ByVal nPosition&, ByVal wFlags&)

Private Sub UserForm_Initialize()
Dim hwnd&, IcoPath$, hIcon&
hwnd = FindWindow(vbNullString, Me.Caption)
IcoPath = ThisWorkbook.Path & "msn.ico"
If Len(Dir(IcoPath)) Then
hIcon = ExtractIcon(0, IcoPath, 0)
SendMessage hwnd, &H80, 0, hIcon
End If
DeleteMenu GetSystemMenu(hwnd, 0), &HF060, 0&
DrawMenuBar hwnd
End Sub

Private Sub CommandButton1_Click()
Unload Me
End Sub

MP

"Room |312|" a
écrit dans le message

de news:461801c47343$a03d6e00$
Bonsoir,

J'ai noté avec intérêt la possibilité de supprimer la
croix de fermeture d'un userform ; idem pour ce qui est
d'y mettre une icône. En revanche, ça ne fonctionne pas
lorsque je veux combiner les deux : pas de croix de
fermeture + 1 icône. Soit c'est l'un, soit c'est l'autre.
Comment faire ? Merci.


.