OVH Cloud OVH Cloud

Coordonnées d'un formulaire

2 réponses
Avatar
luc
Salut Pierre,

En utilisant la fonction "GetWindowRect" et la=20
m=E9thode "MoveSize" de "DoCmd", il y a manifestement des=20
probl=E8mes d'unit=E9s car le repositionnement ne se fait pas=20
bien du tout. Par contre, en utilisant la=20
fonction "MoveWindow" qui fait partie de la m=EAme DLL=20
que "GetWindowRect" ce probl=E8me dispara=EEt ... avec=20
toutefois, une petite nuance, car, lorsque je ferme le 2d=20
form et que je veux ramener le 1er =E0 son emplacement=20
d'origine, il se repositionne un petit peu plus bas qu'=E0=20
l'origine. Et si je cycle sur l'ouverture et la fermeture=20
du 2d form, =E0 chaque fois, le 1er revient un peu plus bas=20
que pr=E9c=E9demment jusqu'=E0 se retrouver tout en bas de la=20
fen=EAtre. Je dois encore r=E9soudre cela.

Mais, pour bien g=E9rer le positionnement des fen=EAtres,=20
l'id=E9al serait de pouvoir appr=E9hender et stocker les=20
coordonn=E9es (largeur-hauteur) de la fen=EAtre Access ...=20
comment faire?

Merci d'avance.
Luc

PS : je ne suis pas un "viel" habitu=E9 du forum (mis =E0 part=20
mon =E2ge! hum!) ... quand tu me dis de te faire parvenir=20
mon formulaire =E0 probl=E8me, comment dois-je proc=E9der=20
puisque je ne peux pas mettre d'attachment dans les=20
messages?
Etant assez t=EAtu, je t=E2cherai de r=E9soudre le probl=E8me=20
avant de t'emb=EAter ... en posant quand m=EAme l'une ou=20
l'autre question :-) :-)
Salut

2 réponses

Avatar
3stone
Salut,

"luc"
En utilisant la fonction "GetWindowRect" et la
méthode "MoveSize" de "DoCmd", il y a manifestement des
problèmes d'unités car le repositionnement ne se fait pas
[...]


je t'ai perdu un peu en route...


PS :
... quand tu me dis de te faire parvenir mon formulaire à problème
comment dois-je procéder puisque je ne peux pas mettre d'attachment dans les
messages?


Envoye le moi directement sur mon mail...
avec ton adresse valide, bien sûr !


--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/charte.htm
--------------------------------------
Avatar
Guy DETIENNE
Salut ;O)

Il est tout à fait normal que la méthode MoveSize de
l'objet DoCmd se comporte étrangement avec les coordonnées
que te retourne GetWindowRect. GetWindowRect travaille en
pixel comme toutes les API et MoveSize en Twips. Pour
qu'ils puissent travailler ensemble, il aurait fallu
préalablement convertir les coordonnées de GetWindowRect
en Twips. MoveWindow est le plus approprié pour déplacer
ou redimensionner une fenêtre.

Le comportement que tu décris comme quoi lors de la
réouverture d'une fenêtre, celle-ci se repositionne un
petit peu plus bas qu'à l'origine, cela est normal. En
VB6, cela se produit aussi. Windows anticipe l'ouverture
multiple de la fenêtre. Il crée donc un décalage,
histoire de les voir toutes et non l'une sur l'autre. Mais
en ce qui me concerne, il est rare que je l'aisse un
formulaire se positionner n'importe où... En général, je
fais en sorte qu'il se charge centré par rapport aux
coordonnées de l'écran ou alors je le repositionne moi-
même.

Mais en effet, tu pourrais enregistrer les coordonnées du
formulaire ouvert avant de le fermer. Tu pourrais faire
cela soit dans une DB, dans un fichier INI ou encore dans
la base des registres Windows.

Et pour connaître les coordonnées de la fenêtre d'Access,
il suffit d'utiliser la Handle de celle-ci comme tu peux
le faire pour les fenêtres de ton application en utilisant
GetWindowRect.

Pour récupérer le handle d'Access:
Application.hWndAccessApp

Bon travail

Guy

-----Message d'origine-----
Salut Pierre,

En utilisant la fonction "GetWindowRect" et la
méthode "MoveSize" de "DoCmd", il y a manifestement des
problèmes d'unités car le repositionnement ne se fait pas
bien du tout. Par contre, en utilisant la
fonction "MoveWindow" qui fait partie de la même DLL
que "GetWindowRect" ce problème disparaît ... avec
toutefois, une petite nuance, car, lorsque je ferme le 2d
form et que je veux ramener le 1er à son emplacement
d'origine, il se repositionne un petit peu plus bas qu'à
l'origine. Et si je cycle sur l'ouverture et la fermeture
du 2d form, à chaque fois, le 1er revient un peu plus bas
que précédemment jusqu'à se retrouver tout en bas de la
fenêtre. Je dois encore résoudre cela.

Mais, pour bien gérer le positionnement des fenêtres,
l'idéal serait de pouvoir appréhender et stocker les
coordonnées (largeur-hauteur) de la fenêtre Access ...
comment faire?

Merci d'avance.
Luc

PS : je ne suis pas un "viel" habitué du forum (mis à
part

mon âge! hum!) ... quand tu me dis de te faire parvenir
mon formulaire à problème, comment dois-je procéder
puisque je ne peux pas mettre d'attachment dans les
messages?
Etant assez têtu, je tâcherai de résoudre le problème
avant de t'embêter ... en posant quand même l'une ou
l'autre question :-) :-)
Salut


.