Le contrôle de la taille des formes dans l'Accès
J'ai donc une application Access, et j'aimerais avoir quelques formes pour être maximisée lorsqu'elles sont ouvertes, et les autres à être de taille moyenne lorsqu'ils sont ouverts. Cependant, si je tente quelque chose comme ceci:
Private Sub Form_Activate()
DoCmd.Maximize
End Sub
ou
Private Sub Form_Activate()
DoCmd.Restore
End Sub
il a pour effet de maximiser ou de la restauration de toutes les fenêtres ouvertes, ce qui n'est pas ce que je cherche.
Est-il un moyen de contourner cela?
Je suis aide d'Access 2003.
Vous devez vous connecter pour publier un commentaire.
ΤΖΩΤΖΙΟΥ est à 100% pour dire que tous sont agrandies, ou aucun. Si vous voulez vraiment gérer ce problème, vous aurez à lire un peu ici (regardez le code proposé et la façon de l'appeler), de comprendre ce qui est fait, et finalement de construire votre propre solution en fonction de vos besoins.
Accès est un MDI (Multiple Document Interface) de l'application, et c'est de cette façon de travailler: soit tous les sous-fenêtres sont agrandies, ou aucun.
Ce que vous devez faire, est de trouver un moyen de découvrir les dimensions de la fenêtre d'application Access, puis définir par programmation du formulaire .InsideWidth et .InsideHeight propriétés. Le
Application
objet a unehwndAccessApp
que, probablement, peuvent être utilisées avec certains de l'API Windows pour trouver sa largeur et sa hauteur.additif
Grâce à Philippe Grondier pour trouver un exemple de code approprié, l'idée générale de la exemple de code est:
struct Rect
(Type Rect…
en VBA)const SW_SHOWNORMAL = 1
(pour ShowWindow)GetParent
(étant donné un hwnd, son parent hwnd)GetClientRect
(récupérer la position et la taille d'un hwnd)IsZoomed
(booléen; valeur true si la fenêtre est maximisée)ShowWindow
(changer l'état d'une fenêtre)MoveWindow
(pour modifier la position et la taille de la fenêtre)IsZoomed(frm.hWnd) = True
), puis de la restaurer (ShowWindow frm.hWnd, SW_SHOWNORMAL
)GetClientRect GetParent(frm.hWnd, rect)
)MoveWindow frm.hWnd, 0, 0, rect.x2-rect.x1, rect.y2-rect.y1
)(Ci-dessus est essentiellement l'explication de l'exemple de code que je n'ai pas de copier-coller le code parce que je n'étais pas sûr si l'auteur l'a autorisé).
Vous pouvez utiliser MoveSize:
Plus d'informations: http://msdn.microsoft.com/en-us/library/aa141514(bureau de.10).aspx
Il ya un couple d'options ici: http://www.jamiessoftware.tk/articles/resolution.html
J'ai utilisé ADHResize dans le passé et il fait le travail.