Carte du site
 Remerciements
 Netiquette
 Bugs
 Tables
 Requêtes
 Formulaires
 États (rapports)
 Modules
 APIs
 Chaînes
 Date/Time
 Général
 Ressources
 Téléchargeables

 Termes d'usage

APIs: Enlever le bouton de fermeture (X) des formulaires maximisés

Author(s)
Dev Ashish

(Q)    Quand on maximise un formulaire, son bouton Close apparaît, même si on a expressément assigné la propriété voulue à Faux. Comment s'en débarrasser?

(A)    L'apparence de ce bouton Close sur les formulaires maximisés est un comportement standard des fenêtres maximisées. Une solution est alors de soit ne pas maximiser le formulaire, ou, au lieu d'utiliser DoCmd.Maximize, utiliser la fonction suivante fournie par Terry Kreft.

'*************************** Code Start ************************
'This code was originally written by Terry Kreft. 
'It is not to be altered or distributed, 
'except as part of an application. 
'You are free to use it in any application,  
'provided the copyright notice is left unchanged.

'Ce code fut initialement écrit par Terry Kreft. 
'Il ne doit être ni distribué ni altéré, 
'si ce n'est qu'en tant que composant pleinement intégré à votre application.
'Vous êtes libre de l'utiliser dans quelque application que ce soit,  
'tant que cette note est laissée inchangée.

'
'Code courtesy of
'Terry Kreft
'
Type Rect
    x1 As Long
    y1 As Long
    x2 As Long
    y2 As Long
End Type
Declare Function IsZoomed Lib "user32" (ByVal hWnd As Long) As Long
Declare Function ShowWindow Lib "user32" (ByVal hWnd As Long, ByVal _
    nCmdShow As Long) As Long
Declare Function MoveWindow Lib "user32" (ByVal hWnd As Long, ByVal _
    X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight _
    As Long, ByVal bRepaint As Long) As Long
Declare Function GetParent Lib "user32" (ByVal hWnd As Long) As Long
'Use following instead of GetWindowRect
Declare Function GetClientRect Lib "user32" (ByVal hWnd As Long, lpRect _
    As Rect) As Long

Public Const SW_MAXIMIZE = 3
Public Const SW_SHOWNORMAL = 1

Sub MaximizeRestoredForm(F As Form)
    Dim MDIRect As Rect
    ' If the form is maximized, restore it.
    If IsZoomed(F.hWnd) <> 0 Then
        ShowWindow F.hWnd, SW_SHOWNORMAL
    End If
    ' Get the screen coordinates and window size of the
    ' MDIClient area.
    'This is the line which is different
    GetClientRect GetParent(F.hWnd), MDIRect
    ' Move the form to the upper left corner of the MDIClient
    ' window (0,0) and size it to the same size as the
    ' MDIClient window.
    MoveWindow F.hWnd, 0, 0, MDIRect.x2 - MDIRect.x1, MDIRect.y2 - MDIRect.y1, True
End Sub
'*************************** Code End ************************

 

© 1998-2001, Dev Ashish, All rights reserved. Optimized for Microsoft Internet Explorer