[]
Nombre de membres 1 membre
Connectés : ( personne )
 

La Charte du Forum - La Charte du Forum

Forum - Forum
Problèmes liés aux codes du site - Problèmes liés aux codes du site


clos par 3Stone le 19/04/2011 : 15:07  Sujet n° 452  Empêcher le redimensionnement de la fenêtre Access.

le 01/01/2011 : 22:46
par jtraulle

Anonyme

visiteur

Bonjour !
Tout d'abord, merci pour votre site et ces nombreux exemples ! C'est une véritable mine d'or :)
J'ai essayé de mettre en oeuvre le code présenté sur cette page : http://www.3stone.be/access/articles.php?lng=fr&pg=219
Il s'agit exactement de ce que je souhaite faire, a savoir les bouton MIN/MAX ont bien disparu :) cependant j'aurai aimé savoir si ce code peut être amélioré.
En effet, il m'est toujours possible de redimensionner manuellement la fenêtre Access avec les poignées de redimensionnement en bas à droite et en bas à gauche.
De même, l'option Taille du menu contextuel qui apparaît par un clic droit sur la barre de titre et toujours accessible et non grisé.
Je vous ai fait une petite vidéo : http://www.screencast.com/users/jtraulle/folders/Default/media/239ecacf-4870-43cb-916d-86e960f48ad3
Est-il possible de remédier à cela en empêchant totalement le redimensionnement ?J'avoue avoir besoin de votre aide parce que je sèche complètement.
Merci d'avance pour l'aide que vous pourrez m'apporter !Jean
 sujet clos  Haut

[]   

Réponse n° 1
--------
le 03/01/2011 : 01:19
par 3Stone

Anonyme

Administrateur

Bonjour,

Le problème, c'est que Access utilise certaines méthodes non standard.

Tu peux essayer ce code, mais ce n'est pas parfait:

 
Code :
Option Compare Database
Option Explicit
Private Const GWL_STYLE = (-16)
Private Const WS_MAXIMIZEBOX = &H10000
Private Const WS_THICKFRAME = &H40000
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _
(ByVal hwnd As Long, ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _
(ByVal hwnd As Long, ByVal nIndex As Long) As Long
Function WindowMove(x, y, w, h) As Long
Dim hMenu As Long
Dim lStyle As Long
Dim Lhwnd As Long
Lhwnd = Access.Application.hWndAccessApp
MoveWindow Lhwnd, x, y, w, h, 1
'désactive le bouton MAXIMIZE
lStyle = GetWindowLong(Lhwnd, GWL_STYLE)
lStyle = lStyle And Not WS_MAXIMIZEBOX
Call SetWindowLong(Lhwnd, GWL_STYLE, lStyle)
'désactive l'agrandissement
lStyle = GetWindowLong(Lhwnd, GWL_STYLE)
lStyle = lStyle And Not WS_THICKFRAME
Call SetWindowLong(Lhwnd, GWL_STYLE, lStyle)
End Function
 
Sur ouverture du premier formulaire, il suffit d'appeler la fonction:

 
Code :
WindowMove 100,100,800,600
 
Cordialement,
Pierre(3stone)
  clos par 3Stone le 19/04/2011 : 15:07  Haut
Réponse n° 2
--------
le 03/01/2011 : 15:33
par jtraulle

Anonyme

visiteur
Bonjour !
Merci pour votre réponse rapide :)

Je viens de tester et il me met Erreur, MoveWindow fonction ou procédure non définie.

Une idée ?
  clos par 3Stone le 19/04/2011 : 15:07  Haut
Réponse n° 3
--------
le 03/01/2011 : 15:41
par jtraulle

Anonyme

visiteur
Je viens de déclarer l'api MoveWindow (trouvé ici : )
 Code : Public Declare Function MoveWindow Lib "user32" Alias "MoveWindow" (ByVal hwnd As Long, ' Handle to the Window e.g. Me.Hwnd ByVal x As Long, ' New position of the left side of the Window/Form. ByVal y As Long, ' New position of the top side of the Window/Form. ByVal nWidth As Long, ' New width of the Window ByVal nHeight As Long, ' New height of the Window ByVal bRepaint As Long) ' Specifies whether Window is to be repainted. True means repainted As Long ' If the function succeeds, the return value is nonzero else zero.
  clos par 3Stone le 19/04/2011 : 15:07  Haut
Réponse n° 4
--------
le 03/01/2011 : 16:04
par 3Stone

Anonyme

Administrateur

Bonjour,

Cette déclaration fait déjà partie du code que j'ai posté ! d

Cordialement,
Pierre(3stone)
  clos par 3Stone le 19/04/2011 : 15:07  Haut
actif sujet actif   clos sujet clos   Important! Important!   Nouveau Nouveau message   -   Rectifier Rectifier message   Clôturer Clôturer sujet   Remonter Remonter
[]
Catégories de discussion  Forum 



Haut