Page 1 sur 1
Afficher sur l'écran de son choix
Publié : mar. 21/mars/2017 10:52
par Micoute
Bonjour à tous,
dans le cas d'un système multi écrans, j'aimerais savoir s'il est possible d'afficher une fenêtre sur l'écran de son choix ?
Je vous remercie tous pour l'aide que vous allez m'apporté
Re: Afficher sur l'écran de son choix
Publié : mar. 21/mars/2017 11:10
par falsam
Bureau étendu sur les deux écrans je suppose ?
Utilise ExamineDesktops()
Si affichage sur écran 2
utilise DesktopWidth() pour trouver la largeur du premier écran. Tu auras la coordonnées x de ton ecran 2
Re: Afficher sur l'écran de son choix
Publié : mar. 21/mars/2017 11:27
par GallyHC
Bonjour,
J'avais fait un code pour envoyer une fenêtre sur les divers écran possible. La y a juste une fenêtre et un bouton, quand on clique sur le bouton la fenêtre bascule d'écran.
Voila l'adresse :
http://www.koakdesign.info/pbfrance/?ur ... wer&val=77
Cordialement,
GallyHC
Re: Afficher sur l'écran de son choix
Publié : mar. 21/mars/2017 12:00
par Ollivier
Merci pour le lien GallyHC.
Pour compléter l'explication de Falsam, chez bicrosoft, les écrans se succèdent, comme le linge étendu sur un fil : tu as le T-Short "Ecran principal", tenu avec 2 pinces à linge, puis sur sa droite, le mouchoir en tissu brodé "Ecran secondaire" avec 2 pinces à linge aussi.
Cette disposition permet de choisir son écran en modifiant simplement le paramètre x d'une fenêtre. D'où le bon conseil de Falsam, plus haut.
Re: Afficher sur l'écran de son choix
Publié : mar. 21/mars/2017 12:08
par GallyHC
Bonjour,
Pour compléter aussi un peu olivier tout cela est valable si l'affichage multiple est bien en mode étendu.
Cordialement,
GallyHC
Re: Afficher sur l'écran de son choix
Publié : mar. 21/mars/2017 13:29
par falsam
Petit code pour mettre en pratique ce que j'ai dit précédemment.
Je pars du principe qu'il n'y a que deux moniteur (0 et 1)
Code : Tout sélectionner
Structure NewDesktop
x.i
w.i
h.i
EndStructure
Structure NewExtendedDesktop
Desktop0.NewDesktop
Desktop1.NewDesktop
EndStructure
Global Desktop.NewExtendedDesktop
Global CountDesktop = ExamineDesktops(), n
Declare SetupDesktop()
Declare ShowWindow(Desktop = 0)
Declare Exit()
;Initialisation desktop étendue
SetupDesktop()
;Afficher la fenetre sur le desktop 1 (0 par defaut)
ShowWindow(1)
;Bizarrerie : Si pas de fenetre l'examinedesktop est plus long
Procedure SetupDesktop()
OpenWindow(0, 0, 0, 400, 200, "", #PB_Window_Invisible)
;Configuration du bureau étendu
If ExamineDesktops() = 2
Desktop\Desktop0\x = 0
Desktop\Desktop0\w = DesktopWidth(0)
Desktop\Desktop0\h = DesktopHeight(0)
Desktop\Desktop1\x = DesktopWidth(0)
Desktop\Desktop1\w = DesktopWidth(1)
Desktop\Desktop1\h = DesktopHeight(1)
EndIf
CloseWindow(0)
EndProcedure
;Affichage de la fenetre de test
Procedure ShowWindow(DesktopNumber = 0)
Protected x, y = #PB_Ignore, w = #PB_Ignore, h = #PB_Ignore
Protected Flag = #PB_Window_SystemMenu | #PB_Window_Maximize | #PB_Window_MaximizeGadget
OpenWindow(0, x, 0, 800, 600, "Ma fenetre", Flag)
If DesktopNumber = 1
If Flag & Flag & #PB_Window_Maximize
x = Desktop\Desktop0\w
w = Desktop\Desktop1\w
h = Desktop\Desktop1\h
ElseIf Flag & #PB_Window_ScreenCentered
x = Desktop\Desktop0\w + Desktop\Desktop1\w / 2 - WindowWidth(0)/2
Else
x = Desktop\Desktop0\w + WindowX(0)
EndIf
ResizeWindow(0, x, y, w, h)
EndIf
BindEvent(#PB_Event_CloseWindow, @Exit())
Repeat : WaitWindowEvent() : ForEver
EndProcedure
Procedure Exit()
End
EndProcedure
J'ai testé ce code sur un pc connecté à deux moniteurs 17" et 24". Le bureau est étendu sur les deux écrans.
Re: Afficher sur l'écran de son choix
Publié : mar. 21/mars/2017 15:29
par Micoute
Mais tout ça est excellent, énorme merci pour ce partage
Re: Afficher sur l'écran de son choix
Publié : dim. 26/mars/2017 20:31
par venom
Oui il faut faire attention. Car on peut avoir des bureau a gauche, droite mais aussi en haut et bas.
@++