OVH Cloud OVH Cloud

Enlever ControlBox + avoir Icon ???

7 réponses
Avatar
LE TROLL
Bonjour,

Quand je mets pour une form controBox = False, je perds l'icône en haut
à gauche dans la barre de feuille, comment puis-je afficher cette icône sans
afficher la croix système de fermeture de la form ???

--
Merci beaucoup, au revoir et à bientôt :o)
------
Site de MES LOGICIELS
http://irolog.free.fr
Site éditeur de MES ROMANS édités
http://irolog.free.fr/romans
mon adresse EMail
http://irolog.free.fr/ecrire/index.htm
------------------------------------------------------------------------------------

7 réponses

Avatar
Jacques93
Bonjour LE TROLL,
LE TROLL a écrit :
Bonjour,

Quand je mets pour une form controBox = False, je perds l'icône en haut
à gauche dans la barre de feuille, comment puis-je afficher cette icône sans
afficher la croix système de fermeture de la form ???




Ce n'est pas exactement ce que tu demandes, mais le code suivant
désactive la croix de fermeture, et le choix 'Fermer' du menu système.
(Ca ne désactive pas Alt-F4)

Option Explicit
Private Declare Function DrawMenuBar Lib "User32" _
(ByVal hWnd As Long) As Long
Private Declare Function GetSystemMenu Lib "User32" _
(ByVal hWnd As Long, ByVal bRevert As Long) As Long
Private Declare Function DeleteMenu Lib "User32" _
(ByVal hMenu As Long, ByVal nPosition As Long, _
ByVal wFlags As Long) As Long

Private Const SC_CLOSE As Long = &HF060

Private Sub Form_Load()
DisableCloseButton
End Sub

Sub DisableCloseButton()
Dim hMenu As Long

hMenu = GetSystemMenu(Me.hWnd, 0)
DeleteMenu hMenu, SC_CLOSE, 0&
DrawMenuBar Me.hWnd
End Sub

Private Sub Command1_Click()
Unload Me
End Sub

--
Cordialement,

Jacques.
Avatar
LE TROLL
Bonjour Jacques, merci :o)

Je me demandais, j'en suis à maintenant 4 questions et aucune réponse...

Ben si, j'ai aussi besoin de désactiver <alt>+<F4>, mais peut être que
je peux intercepter la commande au clavier ???

Amicalement :o)

--
Site de MES LOGICIELS
http://irolog.free.fr
Site éditeur de MES ROMANS édités
http://irolog.free.fr/romans
mon adresse EMail
http://irolog.free.fr/ecrire/index.htm
------------------------------------------------------------------------------------
"Jacques93" a écrit dans le message de news:
e%
Bonjour LE TROLL,
LE TROLL a écrit :
Bonjour,

Quand je mets pour une form controBox = False, je perds l'icône en
haut à gauche dans la barre de feuille, comment puis-je afficher cette
icône sans afficher la croix système de fermeture de la form ???




Ce n'est pas exactement ce que tu demandes, mais le code suivant désactive
la croix de fermeture, et le choix 'Fermer' du menu système.
(Ca ne désactive pas Alt-F4)

Option Explicit
Private Declare Function DrawMenuBar Lib "User32" _
(ByVal hWnd As Long) As Long
Private Declare Function GetSystemMenu Lib "User32" _
(ByVal hWnd As Long, ByVal bRevert As Long) As Long
Private Declare Function DeleteMenu Lib "User32" _
(ByVal hMenu As Long, ByVal nPosition As Long, _
ByVal wFlags As Long) As Long

Private Const SC_CLOSE As Long = &HF060

Private Sub Form_Load()
DisableCloseButton
End Sub

Sub DisableCloseButton()
Dim hMenu As Long

hMenu = GetSystemMenu(Me.hWnd, 0)
DeleteMenu hMenu, SC_CLOSE, 0&
DrawMenuBar Me.hWnd
End Sub

Private Sub Command1_Click()
Unload Me
End Sub

--
Cordialement,

Jacques.


Avatar
LE TROLL
Ah j'y pense, en rajout, en fait, dans le contexte décrit il me suffirait de
savoir comment forcer l'affichage de l'icône haut gauche...

--
Site de MES LOGICIELS
http://irolog.free.fr
Site éditeur de MES ROMANS édités
http://irolog.free.fr/romans
mon adresse EMail
http://irolog.free.fr/ecrire/index.htm
------------------------------------------------------------------------------------
"Jacques93" a écrit dans le message de news:
e%
Bonjour LE TROLL,
LE TROLL a écrit :
Bonjour,

Quand je mets pour une form controBox = False, je perds l'icône en
haut à gauche dans la barre de feuille, comment puis-je afficher cette
icône sans afficher la croix système de fermeture de la form ???




Ce n'est pas exactement ce que tu demandes, mais le code suivant désactive
la croix de fermeture, et le choix 'Fermer' du menu système.
(Ca ne désactive pas Alt-F4)

Option Explicit
Private Declare Function DrawMenuBar Lib "User32" _
(ByVal hWnd As Long) As Long
Private Declare Function GetSystemMenu Lib "User32" _
(ByVal hWnd As Long, ByVal bRevert As Long) As Long
Private Declare Function DeleteMenu Lib "User32" _
(ByVal hMenu As Long, ByVal nPosition As Long, _
ByVal wFlags As Long) As Long

Private Const SC_CLOSE As Long = &HF060

Private Sub Form_Load()
DisableCloseButton
End Sub

Sub DisableCloseButton()
Dim hMenu As Long

hMenu = GetSystemMenu(Me.hWnd, 0)
DeleteMenu hMenu, SC_CLOSE, 0&
DrawMenuBar Me.hWnd
End Sub

Private Sub Command1_Click()
Unload Me
End Sub

--
Cordialement,

Jacques.


Avatar
Jacques93
Jacques93 a écrit :
Bonjour LE TROLL,
LE TROLL a écrit :
Bonjour,

Quand je mets pour une form controBox = False, je perds l'icône en
haut à gauche dans la barre de feuille, comment puis-je afficher cette
icône sans afficher la croix système de fermeture de la form ???




Ce n'est pas exactement ce que tu demandes, mais le code suivant
désactive la croix de fermeture, et le choix 'Fermer' du menu système.
(Ca ne désactive pas Alt-F4)

Option Explicit
Private Declare Function DrawMenuBar Lib "User32" _
(ByVal hWnd As Long) As Long
Private Declare Function GetSystemMenu Lib "User32" _
(ByVal hWnd As Long, ByVal bRevert As Long) As Long
Private Declare Function DeleteMenu Lib "User32" _
(ByVal hMenu As Long, ByVal nPosition As Long, _
ByVal wFlags As Long) As Long

Private Const SC_CLOSE As Long = &HF060

Private Sub Form_Load()
DisableCloseButton
End Sub

Sub DisableCloseButton()
Dim hMenu As Long

hMenu = GetSystemMenu(Me.hWnd, 0)
DeleteMenu hMenu, SC_CLOSE, 0&
DrawMenuBar Me.hWnd
End Sub

Private Sub Command1_Click()
Unload Me
End Sub




Tu as un code similaire sur la FAQ VB :

http://faq.vb.free.fr/index.php?questiony

--
Cordialement,

Jacques.
Avatar
Jacques93
LE TROLL a écrit :
Bonjour Jacques, merci :o)

Je me demandais, j'en suis à maintenant 4 questions et aucune réponse...

Ben si, j'ai aussi besoin de désactiver <alt>+<F4>, mais peut être que
je peux intercepter la commande au clavier ???

Amicalement :o)




Pour <alt>+<F4>, j'aurais plutôt tendance à utiliser l'événement
QueryUnload :

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
If UnloadMode = vbFormControlMenu Then
Cancel = True
End If
End Sub

--
Cordialement,

Jacques.
Avatar
Jacques93
LE TROLL a écrit :
Ah j'y pense, en rajout, en fait, dans le contexte décrit il me suffirait de
savoir comment forcer l'affichage de l'icône haut gauche...



C'est peut être possible, mais je ne sais pas comment. Les choix du menu
système affichés par l'icône de gauche sont très étroitement liés au
bouton qui sont présents à droite (qui sont en fait des raccourcis de
ces choix).

C'est aussi pour cela que je trouve un peu étrange qu'avec le code
précédent, cela désactive bien le choix 'Fermer', la croix de fermeture,
mais pas le raccourci clavier associé (Alt-F4).

Dans un menu standard, le raccourci clavier est désactivé en même temps
que le choix.

Mais il s'agit ici du menu système, qui semble avoir des spécificités.
Pour infos :

<http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/resources/menus.asp>

--
Cordialement,

Jacques.
Avatar
LE TROLL
merci :o)

--
Merci beaucoup, au revoir et à bientôt :o)
------
Site de MES LOGICIELS
http://irolog.free.fr
Site éditeur de MES ROMANS édités
http://irolog.free.fr/romans
mon adresse EMail
http://irolog.free.fr/ecrire/index.htm
------------------------------------------------------------------------------------
"Jacques93" a écrit dans le message de news:
%23ETUl$
Jacques93 a écrit :
Bonjour LE TROLL,
LE TROLL a écrit :
Bonjour,

Quand je mets pour une form controBox = False, je perds l'icône en
haut à gauche dans la barre de feuille, comment puis-je afficher cette
icône sans afficher la croix système de fermeture de la form ???




Ce n'est pas exactement ce que tu demandes, mais le code suivant
désactive la croix de fermeture, et le choix 'Fermer' du menu système.
(Ca ne désactive pas Alt-F4)

Option Explicit
Private Declare Function DrawMenuBar Lib "User32" _
(ByVal hWnd As Long) As Long
Private Declare Function GetSystemMenu Lib "User32" _
(ByVal hWnd As Long, ByVal bRevert As Long) As Long
Private Declare Function DeleteMenu Lib "User32" _
(ByVal hMenu As Long, ByVal nPosition As Long, _
ByVal wFlags As Long) As Long

Private Const SC_CLOSE As Long = &HF060

Private Sub Form_Load()
DisableCloseButton
End Sub

Sub DisableCloseButton()
Dim hMenu As Long

hMenu = GetSystemMenu(Me.hWnd, 0)
DeleteMenu hMenu, SC_CLOSE, 0&
DrawMenuBar Me.hWnd
End Sub

Private Sub Command1_Click()
Unload Me
End Sub




Tu as un code similaire sur la FAQ VB :

http://faq.vb.free.fr/index.php?questiony

--
Cordialement,

Jacques.