OVH Cloud OVH Cloud

Référence à un ancien post... croix de fermeture...

2 réponses
Avatar
Christophe B.
Voilà, je fais tout ce qui est dit en dessous... Ca marche dans les userforms
où j'ai des listbox mais pas dans la seule qui contient une textbox... Je ne
peux pas ecrire dans la textbox et meme les boutons ok et cancel sont
inactifs...
D'ou cela pourrait-il venir???

Merci

Christophe.B

_____________________________________________________________

Bonjour,

Dans la section déclarations

'déclarations API nécessaires pour empêcher l'affichage de la
'croix de fermeture du userform

Private Declare Function GetWindowLongA Lib "user32" _
(ByVal hwnd As Long, ByVal nIndex As Long) As Long

Private Declare Function SetWindowLongA Lib "user32" _
(ByVal hwnd As Long, ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long

Private Declare Function FindWindowA Lib "user32" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long

dasn le module Userform_Initialize

'empêche l'affichage de la croix de fermeture en utilisant les API
'déclarées en début de module

Dim hwnd As Long
hwnd = FindWindowA("Thunder" & IIf(Application.Version Like "8*", _
"X", "D") & "Frame", Me.Caption)
SetWindowLongA hwnd, -16, GetWindowLongA(hwnd, -16) And &HFFF7FFFF

Il te faudra prévoir un moyen de fermer le userform puisque tu n'a plus la
croix.


"liben christophe" a écrit :

Bonjour,

Y a t'il un moyen de ne pas afficher le bouton close du userform?

Merci pour votre réponse

Amitiés

2 réponses

Avatar
Michel Pierron
Bonjour Christophe;
Essaie plus simplement:

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 Sub UserForm_Initialize()
Dim hwnd As Long
hwnd = FindWindow(vbNullString, Me.Caption)
SetWindowLong hwnd, -16, &H84C00080
End Sub

Et n'oublie pas le bouton de fermeture !
MP

"Christophe B." a écrit dans le
message de news:
Voilà, je fais tout ce qui est dit en dessous... Ca marche dans les
userforms

où j'ai des listbox mais pas dans la seule qui contient une textbox... Je
ne

peux pas ecrire dans la textbox et meme les boutons ok et cancel sont
inactifs...
D'ou cela pourrait-il venir???

Merci

Christophe.B

_____________________________________________________________

Bonjour,

Dans la section déclarations

'déclarations API nécessaires pour empêcher l'affichage de la
'croix de fermeture du userform

Private Declare Function GetWindowLongA Lib "user32" _
(ByVal hwnd As Long, ByVal nIndex As Long) As Long

Private Declare Function SetWindowLongA Lib "user32" _
(ByVal hwnd As Long, ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long

Private Declare Function FindWindowA Lib "user32" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long

dasn le module Userform_Initialize

'empêche l'affichage de la croix de fermeture en utilisant les API
'déclarées en début de module

Dim hwnd As Long
hwnd = FindWindowA("Thunder" & IIf(Application.Version Like "8*", _
"X", "D") & "Frame", Me.Caption)
SetWindowLongA hwnd, -16, GetWindowLongA(hwnd, -16) And &HFFF7FFFF

Il te faudra prévoir un moyen de fermer le userform puisque tu n'a plus la
croix.



Bonjour,

Y a t'il un moyen de ne pas afficher le bouton close du userform?

Merci pour votre réponse

Amitiés



Avatar
Christophe B.
Re-bonjour,

Ca ne fonctionne pas quand j'ai une textbox dans la userform.sinon ca
marche... Bon, on ne va pas s'embeter, je vais juste désactiver cette croix!!!

Encore merci ;)

Christophe.B

"Michel Pierron" wrote:

Bonjour Christophe;
Essaie plus simplement:

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 Sub UserForm_Initialize()
Dim hwnd As Long
hwnd = FindWindow(vbNullString, Me.Caption)
SetWindowLong hwnd, -16, &H84C00080
End Sub

Et n'oublie pas le bouton de fermeture !
MP

"Christophe B." a écrit dans le
message de news:
Voilà, je fais tout ce qui est dit en dessous... Ca marche dans les
userforms

où j'ai des listbox mais pas dans la seule qui contient une textbox... Je
ne

peux pas ecrire dans la textbox et meme les boutons ok et cancel sont
inactifs...
D'ou cela pourrait-il venir???

Merci

Christophe.B

_____________________________________________________________

Bonjour,

Dans la section déclarations

'déclarations API nécessaires pour empêcher l'affichage de la
'croix de fermeture du userform

Private Declare Function GetWindowLongA Lib "user32" _
(ByVal hwnd As Long, ByVal nIndex As Long) As Long

Private Declare Function SetWindowLongA Lib "user32" _
(ByVal hwnd As Long, ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long

Private Declare Function FindWindowA Lib "user32" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long

dasn le module Userform_Initialize

'empêche l'affichage de la croix de fermeture en utilisant les API
'déclarées en début de module

Dim hwnd As Long
hwnd = FindWindowA("Thunder" & IIf(Application.Version Like "8*", _
"X", "D") & "Frame", Me.Caption)
SetWindowLongA hwnd, -16, GetWindowLongA(hwnd, -16) And &HFFF7FFFF

Il te faudra prévoir un moyen de fermer le userform puisque tu n'a plus la
croix.



Bonjour,

Y a t'il un moyen de ne pas afficher le bouton close du userform?

Merci pour votre réponse

Amitiés