Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
[Astuce] Redimensionner les objets en fonction de la taille de sa Gui
Auteur Message
Répondre en citant
Message [Astuce] Redimensionner les objets en fonction de la taille de sa Gui 
Bonjour,

Astuce proposé par : Guerrion24 : http://batch.xoo.it/t1959-AutoKill-Pixel-Search-Ak-PS-1.htm

lorsque vous faites un prog si vous avez un objet de largeur x et de longueur y
et que votre fenêtre a une largeur x1 et une longueur y1
on peut représenter le coef entre la longueur ou largeur de votre objet et celles de la fenêtre comme suit :
x/x1 et y/y1

si vous voulez redimensionner les objets par rapport à une fenêtre plein écran, sachant qu'une fenêtre plein écran utilisera @DesktopWidth et @DesktopHeight comme largeur et longueur,
il suffit de faire une règle de Trois :
nommons ainsi la largeur de la fenêtre plein écran x2 et la longueur y2, et nommons la largeur "l" puis respectivement la longueur "L" de l'objet proportionnellement à x/x1 et y/y1 on trouve :

x/x1 ; l/x2 et y/y1 ; L/y2

on peut ainsi trouver l et L par ces deux calculs simple :

l=x*x2/x1

L=y*y2/y1

Ainsi pour redimensionner une objet par rapport à une fenêtre plein écran :

-pour sa largeur il faut multiplier la largeur de l'objet par la largeur max de l'écran, divisés par la largeur de base de la fenêtre
-pour sa longueur il faut multiplier la longueur de l'objet par la longueur max de l'écran, divisés par la longueur de base de la fenêtre

EX :
Code:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
Global $Form1 = GUICreate("Form1", 601, 401, 192, 124)
Global $Input = GUICtrlCreateInput("Voici l'input", 130, 88, 329, 21)
Global $Label1 = GUICtrlCreateLabel("Projet Redimension !", 211, 8, 179, 28)
GUICtrlSetFont(-1, 15, 400, 0, "MS Sans Serif")
Global $B1 = GUICtrlCreateButton("Oui", 120, 144, 130, 60, $WS_GROUP)
Global $B2 = GUICtrlCreateButton("Non", 336, 144, 130, 60, $WS_GROUP)
Global $Edit1 = GUICtrlCreateEdit("", 48, 212, 520, 180)
GUICtrlSetData(-1, "Edit1")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit

EndSwitch
WEnd


Ce code créé une fenêtre basique (Form1) avec une InputBox, deux boutons (B1,B2), un Label (du texte) et une EditBox
Les 2 premiers nombres que l'on trouve dans les GuictrlCreate sont la position, les deux derniers sont la taille.
Si nous voulons que les objets s'agrandissent proportionnellement nous devons faire en sorte que la taille augmente mais aussi la position.
Nous nous retrouvons donc avec ça :



Notre but va être de faire en sorte que la fenêtre dans un premier temps devienne de taille maximale, pour ça nous allons utiliser
le style WS_MAXIMIZE.

On se retrouve donc avec ce code :

Code:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
Global $Form1 = GUICreate("Form1", 601, 401, 192, 124, BitOR($WS_MAXIMIZE,$WS_POPUP,$WS_CLIPSIBLINGS))
Global $Input = GUICtrlCreateInput("Voici l'input", 130, 88, 329, 21)
Global $Label1 = GUICtrlCreateLabel("Projet Redimension !", 211, 8, 179, 28)
GUICtrlSetFont(-1, 15, 400, 0, "MS Sans Serif")
Global $B1 = GUICtrlCreateButton("Oui", 120, 144, 130, 60, $WS_GROUP)
Global $B2 = GUICtrlCreateButton("Non", 336, 144, 130, 60, $WS_GROUP)
Global $Edit1 = GUICtrlCreateEdit("", 48, 212, 520, 180)
GUICtrlSetData(-1, "Edit1")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit

EndSwitch
WEnd


Maintenant il faut redimensionner la position et la taille de chaque objet présent (InputBox,Label,EditBox ... ect)
On utilise la technique de dessus donc on va multiplier par la longueur ou largeur max puis diviser par la longueur ou largeur de la fenêtre.
Le premier des deux paramètres des objets étant la largeur nous allons commencer par la largeur et ensuite la longueur.

Prenons le code de l'inputBox
Avant nous avions : Global $Input = GUICtrlCreateInput("Voici l'input", 130, 88, 329, 21)
Une fois l'algorithme utilisé nous avons : Global $Input = GUICtrlCreateInput("Voici l'input", 130/$x*@DesktopWidth, 88/$y*@DesktopHeight, 329/$x*@DesktopWidth, 21/$y*@DesktopHeight)

Que sont les $x et $y ?
Et bien ce sont les variables contenant la largeur et longueur de la fenêtre (ça nous évite de la retaper à chaques fois)
$x contient la largeur
$y la longueur

On devrait ainsi se retrouver avec ce code :

Code:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
Local $x,$y
$x=601
$y=401
#Region ### START Koda GUI section ### Form=
Global $Form1 = GUICreate("Form1", 601, 401, 192, 124, BitOR($WS_MAXIMIZE,$WS_POPUP,$WS_CLIPSIBLINGS))
Global $Input = GUICtrlCreateInput("Voici l'input", 130/$x*@DesktopWidth, 88/$y*@DesktopHeight, 329/$x*@DesktopWidth, 21/$y*@DesktopHeight)
Global $Label1 = GUICtrlCreateLabel("Projet Redimension !", 211/$x*@DesktopWidth, 8/$y*@DesktopHeight, 179/$x*@DesktopWidth, 28/$y*@DesktopHeight)
GUICtrlSetFont(-1, 15, 400, 0, "MS Sans Serif")
Global $B1 = GUICtrlCreateButton("Oui", 120/$x*@DesktopWidth, 144/$y*@DesktopHeight, 130/$x*@DesktopWidth,60/$y*@DesktopHeight, $WS_GROUP)
Global $B2 = GUICtrlCreateButton("Non", 336/$x*@DesktopWidth, 144/$y*@DesktopHeight, 130/$x*@DesktopWidth, 60/$y*@DesktopHeight, $WS_GROUP)
Global $Edit1 = GUICtrlCreateEdit("", 48/$x*@DesktopWidth, 212/$y*@DesktopHeight, 520/$x*@DesktopWidth, 180/$y*@DesktopHeight)
GUICtrlSetData(-1, "Edit1")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit

EndSwitch
WEnd


A présent on devrait se retrouver avec cette fenêtre :



Voilà donc si vous avez des questions posez-les car je n'avais pas trop de temps à vous consacrer.

A bientôt.




______________________________________________________
Faites paraitre votre batch sur BatchClipboard
Visiter le site web du posteur
Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message [Astuce] Redimensionner les objets en fonction de la taille de sa Gui 
Merci je vais tester ! Okay




______________________________________________________
Message [Astuce] Redimensionner les objets en fonction de la taille de sa Gui 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 1
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch