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
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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 --------------------------------------
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... 3stone@skynet.be
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
--------------------------------------
"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 --------------------------------------
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
.
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
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