OVH Cloud OVH Cloud

Afficher des fenêtres qui restent à la même place sur tout les écrans

8 réponses
Avatar
Christian
Bonjour,

J'ai un souci avec un formulaire qui reste affiché au dessus du bureau de
mon application (comme la barre composants de VB) . Je lui demande de
prendre la taille du bureau (en longueur), puis de se placer au bord à
gauche, entre la barre des menus et le bas du bureau. Sur mon écran ce code
fonctionne à merveille :

' Positionnement de la fenêtre dans le coin gauche de l'application
Move (Bureau.Width - Width) * 0#, (Bureau.Height - Height) * 0.13

J'ai dû programmer sur un portable, là ce formulaire n'était plus à sa place
en hauteur, mais malgré tout de bonne longueur. J'arrange le coup, mais dès
que je reviens sur mon écran, il est de nouveau trop haut.

height 0.1 = portable
height 0.13 = mon PC

Comment faire pour que ce formulaire puisse se placer sur tout les écrans à
la place qui lui a été assigné ?

Christian.

8 réponses

Avatar
le_troll
Bonjour,

Pour ça il faut prendre préalablement connaissance de la taille de
l'écran, puis dans le même mode que l'écran, appliquer les paramètres, ou
ouvrir au maximum l'application, qui s'adaptera à la taille de l'écran...

--
Merci, @+, bye, Joe
troll75 AROBASE iFrance POINT com
------------------------------------------
Le_Troll, éleveur de Trolls depuis César, qui disait:
Avec une hache, celui qui tient le manche a toujours raison !


"Christian" a écrit dans le message de
news:41493d67$0$27541$
Bonjour,

J'ai un souci avec un formulaire qui reste affiché au dessus du bureau de
mon application (comme la barre composants de VB) . Je lui demande de
prendre la taille du bureau (en longueur), puis de se placer au bord à
gauche, entre la barre des menus et le bas du bureau. Sur mon écran ce


code
fonctionne à merveille :

' Positionnement de la fenêtre dans le coin gauche de l'application
Move (Bureau.Width - Width) * 0#, (Bureau.Height - Height) * 0.13

J'ai dû programmer sur un portable, là ce formulaire n'était plus à sa


place
en hauteur, mais malgré tout de bonne longueur. J'arrange le coup, mais


dès
que je reviens sur mon écran, il est de nouveau trop haut.

height 0.1 = portable
height 0.13 = mon PC

Comment faire pour que ce formulaire puisse se placer sur tout les écrans


à
la place qui lui a été assigné ?

Christian.




Avatar
Christian
Merci pour la réponse.

Le bureau (l'application) fait la taille de l'écran, il est "maximisé". Je
pense que j'obtiens de bonnes valeurs puisque le formulaire s'allonge ou
rapetisse en fonction dudit bureau et à ce niveau, il est pile comme il
faut.

Quelque chose m'echape ?

Christian.

"le_troll" a écrit dans le message de news:

Bonjour,

Pour ça il faut prendre préalablement connaissance de la taille de
l'écran, puis dans le même mode que l'écran, appliquer les paramètres, ou
ouvrir au maximum l'application, qui s'adaptera à la taille de l'écran...

--
Merci, @+, bye, Joe
troll75 AROBASE iFrance POINT com
------------------------------------------
Le_Troll, éleveur de Trolls depuis César, qui disait:
Avec une hache, celui qui tient le manche a toujours raison !


"Christian" a écrit dans le message de
news:41493d67$0$27541$
> Bonjour,
>
> J'ai un souci avec un formulaire qui reste affiché au dessus du bureau


de
> mon application (comme la barre composants de VB) . Je lui demande de
> prendre la taille du bureau (en longueur), puis de se placer au bord à
> gauche, entre la barre des menus et le bas du bureau. Sur mon écran ce
code
> fonctionne à merveille :
>
> ' Positionnement de la fenêtre dans le coin gauche de l'application
> Move (Bureau.Width - Width) * 0#, (Bureau.Height - Height) * 0.13
>
> J'ai dû programmer sur un portable, là ce formulaire n'était plus à sa
place
> en hauteur, mais malgré tout de bonne longueur. J'arrange le coup, mais
dès
> que je reviens sur mon écran, il est de nouveau trop haut.
>
> height 0.1 = portable
> height 0.13 = mon PC
>
> Comment faire pour que ce formulaire puisse se placer sur tout les


écrans
à
> la place qui lui a été assigné ?
>
> Christian.
>
>




Avatar
le_troll
L'API c'est GetSystemMetrics,
les constantes
SM_CXSCREEN 0' Largeur de l'écran.
SM_CYSCREEN 1 'Hauteur de l'écran.
Et d'apèrs ça tu devrais pouvoir adapter, mais je ne trouve pas d'exemple
pratique, je cherche...

--
Merci, @+, bye, Joe
troll75 AROBASE iFrance POINT com
------------------------------------------
Le_Troll, éleveur de Trolls depuis César, qui disait:
Avec une hache, celui qui tient le manche a toujours raison !


"Christian" a écrit dans le message de
news:4149486a$0$12198$
Merci pour la réponse.

Le bureau (l'application) fait la taille de l'écran, il est "maximisé". Je
pense que j'obtiens de bonnes valeurs puisque le formulaire s'allonge ou
rapetisse en fonction dudit bureau et à ce niveau, il est pile comme il
faut.

Quelque chose m'echape ?

Christian.

"le_troll" a écrit dans le message de news:

> Bonjour,
>
> Pour ça il faut prendre préalablement connaissance de la taille de
> l'écran, puis dans le même mode que l'écran, appliquer les paramètres,


ou
> ouvrir au maximum l'application, qui s'adaptera à la taille de


l'écran...
>
> --
> Merci, @+, bye, Joe
> troll75 AROBASE iFrance POINT com
> ------------------------------------------
> Le_Troll, éleveur de Trolls depuis César, qui disait:
> Avec une hache, celui qui tient le manche a toujours raison !
>
>
> "Christian" a écrit dans le message de
> news:41493d67$0$27541$
> > Bonjour,
> >
> > J'ai un souci avec un formulaire qui reste affiché au dessus du bureau
de
> > mon application (comme la barre composants de VB) . Je lui demande de
> > prendre la taille du bureau (en longueur), puis de se placer au bord à
> > gauche, entre la barre des menus et le bas du bureau. Sur mon écran ce
> code
> > fonctionne à merveille :
> >
> > ' Positionnement de la fenêtre dans le coin gauche de l'application
> > Move (Bureau.Width - Width) * 0#, (Bureau.Height - Height) * 0.13
> >
> > J'ai dû programmer sur un portable, là ce formulaire n'était plus à sa
> place
> > en hauteur, mais malgré tout de bonne longueur. J'arrange le coup,


mais
> dès
> > que je reviens sur mon écran, il est de nouveau trop haut.
> >
> > height 0.1 = portable
> > height 0.13 = mon PC
> >
> > Comment faire pour que ce formulaire puisse se placer sur tout les
écrans
> à
> > la place qui lui a été assigné ?
> >
> > Christian.
> >
> >
>
>




Avatar
le_troll
Tiens, j'ai trouvé:

Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As
Long) As Long

Sub Form_Load()
Const sm_cxscreen = 0
Const sm_cyscreen = 1
MsgBox "Screen size = " & GetSystemMetrics(sm_cxscreen) & " * " &
GetSystemMetrics(sm_cyscreen)
End Sub

' ayant la taille de ton écrn en pixels, tu pourras l'adapter (form en pixel
aussi, etc)...

--
Merci, @+, bye, Joe
troll75 AROBASE iFrance POINT com
------------------------------------------
Le_Troll, éleveur de Trolls depuis César, qui disait:
Avec une hache, celui qui tient le manche a toujours raison !


"Christian" a écrit dans le message de
news:41493d67$0$27541$
Bonjour,

J'ai un souci avec un formulaire qui reste affiché au dessus du bureau de
mon application (comme la barre composants de VB) . Je lui demande de
prendre la taille du bureau (en longueur), puis de se placer au bord à
gauche, entre la barre des menus et le bas du bureau. Sur mon écran ce


code
fonctionne à merveille :

' Positionnement de la fenêtre dans le coin gauche de l'application
Move (Bureau.Width - Width) * 0#, (Bureau.Height - Height) * 0.13

J'ai dû programmer sur un portable, là ce formulaire n'était plus à sa


place
en hauteur, mais malgré tout de bonne longueur. J'arrange le coup, mais


dès
que je reviens sur mon écran, il est de nouveau trop haut.

height 0.1 = portable
height 0.13 = mon PC

Comment faire pour que ce formulaire puisse se placer sur tout les écrans


à
la place qui lui a été assigné ?

Christian.




Avatar
ng
Salut,

Si j'ai bien compris, ce code devrait fonctionner parfaitement :

Private Sub Form_Load()
Me.Width = Screen.Width
Call Me.Move(0, 0)
End Sub


--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/


Christian wrote:
Bonjour,

J'ai un souci avec un formulaire qui reste affiché au dessus du
bureau de mon application (comme la barre composants de VB) . Je lui
demande de prendre la taille du bureau (en longueur), puis de se
placer au bord à gauche, entre la barre des menus et le bas du
bureau. Sur mon écran ce code fonctionne à merveille :

' Positionnement de la fenêtre dans le coin gauche de l'application
Move (Bureau.Width - Width) * 0#, (Bureau.Height - Height) * 0.13

J'ai dû programmer sur un portable, là ce formulaire n'était plus à
sa place en hauteur, mais malgré tout de bonne longueur. J'arrange le
coup, mais dès que je reviens sur mon écran, il est de nouveau trop
haut.

height 0.1 = portable
height 0.13 = mon PC

Comment faire pour que ce formulaire puisse se placer sur tout les
écrans à la place qui lui a été assigné ?

Christian.


Avatar
Vincent Guichard
Christian a écrit :

Bonjour,


Bonjour,

Ton "Bureau" est une application MDI? Ton "Formulaire" est une feuille
MDIChild ou une feuille classique?

Vincent Guichard
Avatar
Christian
Merci à tous pour vos réponses. Je vais les tester.

Réponse à Vincent Guichard. Effectivement Bureau est formualire MDI. Le
formulaire que je cherche à faire apparaître comme décrit plus bas est un
form normal que je "rattache" au bureau par la MonForm.show , bureau

Christian.

"Vincent Guichard" a écrit dans le message de
news: cic4nn$u21$
Christian a écrit :

> Bonjour,
Bonjour,

Ton "Bureau" est une application MDI? Ton "Formulaire" est une feuille
MDIChild ou une feuille classique?

Vincent Guichard



Avatar
Christian
Désolé, je viens de m'apercevoir que je me suis très mal expliqué. J'espère
que cela ira cette fois.

Comme dit lors de mon précédent post. J'ai un MDIForm appelé Bureau. Je
cherche à afficher, un formulaire comme ceux qui peuvent exister dans les
appli de dessins Adobe ou Paint shop pro. Je pensais que cela fonctionnait
bien jusqu'au moment où j'ai dû programmé sur un portable. Pourtant son
affichage était le même que sur mon PC. Mais au lieu de se mettre sous la
barre de menu il s'est placé dessus, se décalant tout seul. Pour qu'il s'y
remette j'ai dû changer sa valeur.

Alors comment faire pour que à coup sûr ce formulaire s'affiche sous la
barre de menu à gauche ?

Christian.
"Vincent Guichard" a écrit dans le message de
news: cic4nn$u21$
Christian a écrit :

> Bonjour,
Bonjour,

Ton "Bureau" est une application MDI? Ton "Formulaire" est une feuille
MDIChild ou une feuille classique?

Vincent Guichard