Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Taille fenêtre

4 réponses
Avatar
jfd
Bonjour à tous
J’utilise cette fonction pour limiter la taille de ma base en cas
d’ouverture sur un écran plus grand que celui de conception afin d’éviter les
gris.
Un hic je perds la possibilité d’ouvrir la base en question sur mon deuxième
écran (Etendre le bureau à ce moniteur)
Est-il possible de la modifier afin d’éviter l’ouverture en haut à gauche et
comment???
Merci de vos conseils et bon début de semaine.
jfd

Private 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
Public Function fn_redimfen()
Dim x As Long '// Position
Dim y As Long '// ""
Dim nWidth As Long '// Dimension (hauteur) (en pixel)
Dim nHeight As Long '// "" (largeur)
Dim bRepaint As Long '// Indique si redessine(1=oui).
'// Place la fenêtre dans le coin gauche et en haut (0,0)
'// la redimensionne à 1280 * 800 et redessine la fenêtre.
nWidth = 1280: nHeight = 800: bRepaint = 1
MoveWindow application.hWndAccessApp, x, y, nHeight, nWidth, bRepaint
End Function

4 réponses

Avatar
Argyronet
Bonjour,

Une solution consisterait à mémoriser (dans un fichier INI, dans une table
voire dans le Registre) les informations X et Y qui dans votre fonction sont
à 0 ce qui explique que la fenêtre se colle en haut et à gauche.
La fonction, une fois exécutée, stockerait la position de la fenêtre et lors
de la prochaine ouverture de l'application, lirait les info de X et de Y et
les appliquerait à l'API appelée : la fenêtre se trouverait alors à l'endroit
désiré.
Attention tout de même à la notion de Twips et de Pixels pour la définition
des valeurs de X et de Y, une conversion s'imposera.
--
Argy
http://argyronet.developpez.com/
Créez des programmes avec Microsoft Access 2007 (ISBN 2742982442)
VBA pour Office 2007 (ISBN 2742983910)



"jfd" a écrit :

Bonjour à tous
J’utilise cette fonction pour limiter la taille de ma base en cas
d’ouverture sur un écran plus grand que celui de conception afin d’éviter les
gris.
Un hic je perds la possibilité d’ouvrir la base en question sur mon deuxième
écran (Etendre le bureau à ce moniteur)
Est-il possible de la modifier afin d’éviter l’ouverture en haut à gauche et
comment???
Merci de vos conseils et bon début de semaine.
jfd

Private 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
Public Function fn_redimfen()
Dim x As Long '// Position
Dim y As Long '// ""
Dim nWidth As Long '// Dimension (hauteur) (en pixel)
Dim nHeight As Long '// "" (largeur)
Dim bRepaint As Long '// Indique si redessine(1=oui).
'// Place la fenêtre dans le coin gauche et en haut (0,0)
'// la redimensionne à 1280 * 800 et redessine la fenêtre.
nWidth = 1280: nHeight = 800: bRepaint = 1
MoveWindow application.hWndAccessApp, x, y, nHeight, nWidth, bRepaint
End Function




Avatar
jfd
Bonjour et merci beaucoup de cette réponse
Récupérant la taille de l’écran à l’ouverture je peux la stoker sur une
table mais je sais pas comment relier X ou Y à cette table dans le code du
module ?
Je viens de faire un essai avec :

MoveWindow Application.hWndAccessApp, 1280, Y, nWidth, nHeight, bRepaint

Et la j’ouvre bien dans mon deuxieme écran en bureau étendu, donc mon
souhait serait relier X à ma table Taille "Largeur" pour pouvoir faire une
macro me permettant de choisir ou ouvrir ma base.
Merci par avance de vos conseils
jfd


"Argyronet" a écrit :

Bonjour,

Une solution consisterait à mémoriser (dans un fichier INI, dans une table
voire dans le Registre) les informations X et Y qui dans votre fonction sont
à 0 ce qui explique que la fenêtre se colle en haut et à gauche.
La fonction, une fois exécutée, stockerait la position de la fenêtre et lors
de la prochaine ouverture de l'application, lirait les info de X et de Y et
les appliquerait à l'API appelée : la fenêtre se trouverait alors à l'endroit
désiré.
Attention tout de même à la notion de Twips et de Pixels pour la définition
des valeurs de X et de Y, une conversion s'imposera.
--
Argy
http://argyronet.developpez.com/
Créez des programmes avec Microsoft Access 2007 (ISBN 2742982442)
VBA pour Office 2007 (ISBN 2742983910)



"jfd" a écrit :

> Bonjour à tous
> J’utilise cette fonction pour limiter la taille de ma base en cas
> d’ouverture sur un écran plus grand que celui de conception afin d’éviter les
> gris.
> Un hic je perds la possibilité d’ouvrir la base en question sur mon deuxième
> écran (Etendre le bureau à ce moniteur)
> Est-il possible de la modifier afin d’éviter l’ouverture en haut à gauche et
> comment???
> Merci de vos conseils et bon début de semaine.
> jfd
>
> Private 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
> Public Function fn_redimfen()
> Dim x As Long '// Position
> Dim y As Long '// ""
> Dim nWidth As Long '// Dimension (hauteur) (en pixel)
> Dim nHeight As Long '// "" (largeur)
> Dim bRepaint As Long '// Indique si redessine(1=oui).
> '// Place la fenêtre dans le coin gauche et en haut (0,0)
> '// la redimensionne à 1280 * 800 et redessine la fenêtre.
> nWidth = 1280: nHeight = 800: bRepaint = 1
> MoveWindow application.hWndAccessApp, x, y, nHeight, nWidth, bRepaint
> End Function
>
>


Avatar
jfd
Bonsoir
Ok J'ai trouvé

X=(DLOOKUP("largeurecran,matable))

Merci et bonne soirée

"jfd" a écrit :

Bonjour et merci beaucoup de cette réponse
Récupérant la taille de l’écran à l’ouverture je peux la stoker sur une
table mais je sais pas comment relier X ou Y à cette table dans le code du
module ?
Je viens de faire un essai avec :

MoveWindow Application.hWndAccessApp, 1280, Y, nWidth, nHeight, bRepaint

Et la j’ouvre bien dans mon deuxieme écran en bureau étendu, donc mon
souhait serait relier X à ma table Taille "Largeur" pour pouvoir faire une
macro me permettant de choisir ou ouvrir ma base.
Merci par avance de vos conseils
jfd


"Argyronet" a écrit :

> Bonjour,
>
> Une solution consisterait à mémoriser (dans un fichier INI, dans une table
> voire dans le Registre) les informations X et Y qui dans votre fonction sont
> à 0 ce qui explique que la fenêtre se colle en haut et à gauche.
> La fonction, une fois exécutée, stockerait la position de la fenêtre et lors
> de la prochaine ouverture de l'application, lirait les info de X et de Y et
> les appliquerait à l'API appelée : la fenêtre se trouverait alors à l'endroit
> désiré.
> Attention tout de même à la notion de Twips et de Pixels pour la définition
> des valeurs de X et de Y, une conversion s'imposera.
> --
> Argy
> http://argyronet.developpez.com/
> Créez des programmes avec Microsoft Access 2007 (ISBN 2742982442)
> VBA pour Office 2007 (ISBN 2742983910)
>
>
>
> "jfd" a écrit :
>
> > Bonjour à tous
> > J’utilise cette fonction pour limiter la taille de ma base en cas
> > d’ouverture sur un écran plus grand que celui de conception afin d’éviter les
> > gris.
> > Un hic je perds la possibilité d’ouvrir la base en question sur mon deuxième
> > écran (Etendre le bureau à ce moniteur)
> > Est-il possible de la modifier afin d’éviter l’ouverture en haut à gauche et
> > comment???
> > Merci de vos conseils et bon début de semaine.
> > jfd
> >
> > Private 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
> > Public Function fn_redimfen()
> > Dim x As Long '// Position
> > Dim y As Long '// ""
> > Dim nWidth As Long '// Dimension (hauteur) (en pixel)
> > Dim nHeight As Long '// "" (largeur)
> > Dim bRepaint As Long '// Indique si redessine(1=oui).
> > '// Place la fenêtre dans le coin gauche et en haut (0,0)
> > '// la redimensionne à 1280 * 800 et redessine la fenêtre.
> > nWidth = 1280: nHeight = 800: bRepaint = 1
> > MoveWindow application.hWndAccessApp, x, y, nHeight, nWidth, bRepaint
> > End Function
> >
> >


Avatar
Argyronet
C'est parfait ; j'avoue vous avoir laissé un peu mijoter car selon moi et au
regard de votre usage d'une API, c'était accessible.
Bonne soirée également
--
Argy
http://argyronet.developpez.com/
Créez des programmes avec Microsoft Access 2007 (ISBN 2742982442)
VBA pour Office 2007 (ISBN 2742983910)



"jfd" a écrit :

Bonsoir
Ok J'ai trouvé

X=(DLOOKUP("largeurecran,matable))

Merci et bonne soirée

"jfd" a écrit :

> Bonjour et merci beaucoup de cette réponse
> Récupérant la taille de l’écran à l’ouverture je peux la stoker sur une
> table mais je sais pas comment relier X ou Y à cette table dans le code du
> module ?
> Je viens de faire un essai avec :
>
> MoveWindow Application.hWndAccessApp, 1280, Y, nWidth, nHeight, bRepaint
>
> Et la j’ouvre bien dans mon deuxieme écran en bureau étendu, donc mon
> souhait serait relier X à ma table Taille "Largeur" pour pouvoir faire une
> macro me permettant de choisir ou ouvrir ma base.
> Merci par avance de vos conseils
> jfd
>
>
> "Argyronet" a écrit :
>
> > Bonjour,
> >
> > Une solution consisterait à mémoriser (dans un fichier INI, dans une table
> > voire dans le Registre) les informations X et Y qui dans votre fonction sont
> > à 0 ce qui explique que la fenêtre se colle en haut et à gauche.
> > La fonction, une fois exécutée, stockerait la position de la fenêtre et lors
> > de la prochaine ouverture de l'application, lirait les info de X et de Y et
> > les appliquerait à l'API appelée : la fenêtre se trouverait alors à l'endroit
> > désiré.
> > Attention tout de même à la notion de Twips et de Pixels pour la définition
> > des valeurs de X et de Y, une conversion s'imposera.
> > --
> > Argy
> > http://argyronet.developpez.com/
> > Créez des programmes avec Microsoft Access 2007 (ISBN 2742982442)
> > VBA pour Office 2007 (ISBN 2742983910)
> >
> >
> >
> > "jfd" a écrit :
> >
> > > Bonjour à tous
> > > J’utilise cette fonction pour limiter la taille de ma base en cas
> > > d’ouverture sur un écran plus grand que celui de conception afin d’éviter les
> > > gris.
> > > Un hic je perds la possibilité d’ouvrir la base en question sur mon deuxième
> > > écran (Etendre le bureau à ce moniteur)
> > > Est-il possible de la modifier afin d’éviter l’ouverture en haut à gauche et
> > > comment???
> > > Merci de vos conseils et bon début de semaine.
> > > jfd
> > >
> > > Private 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
> > > Public Function fn_redimfen()
> > > Dim x As Long '// Position
> > > Dim y As Long '// ""
> > > Dim nWidth As Long '// Dimension (hauteur) (en pixel)
> > > Dim nHeight As Long '// "" (largeur)
> > > Dim bRepaint As Long '// Indique si redessine(1=oui).
> > > '// Place la fenêtre dans le coin gauche et en haut (0,0)
> > > '// la redimensionne à 1280 * 800 et redessine la fenêtre.
> > > nWidth = 1280: nHeight = 800: bRepaint = 1
> > > MoveWindow application.hWndAccessApp, x, y, nHeight, nWidth, bRepaint
> > > End Function
> > >
> > >