Page 1 sur 1

[R] Application adapté à la résolution de l'écran

Posté : mer. 18 déc. 2013 10:03
par Hugues
Bonjour,

J'aimerai savoir s'il existe une fonction ou un UDF qui permettrait d'adapter le contenu d'un GUI en fonction de la résolution de l'écran de l'utilisateur.

En effet, je developpe sur un PC portable qui a une très bonne résolution et quand j'execute mes applications mes contrôles ont des tailles diferentes...

JGuinch m'a déjà fournit le code pour adapter la taille de mon gui en fontion de la position de la barre de tâche ^^.

Mais que faire pour que les differents contrôles (ListView, bouton, etc) restent proportionnels?

Merci par avance.

Re: [..] Application adapté à la résolution de l'écran

Posté : sam. 04 janv. 2014 19:34
par periaz
Tu peux te servir des variables @DesktopWidth et @DesktopHeight.

Re: [..] Application adapté à la résolution de l'écran

Posté : lun. 06 janv. 2014 08:56
par jguinch
Tu peux regarder du côté de GUICtrlSetResizing. Cette fonction permet de gérer le redimensionnement automatique des contrôles lors du redimensionnement de la fenêtre.
Ce que tu peux donc essayer de faire, c'est créer une fenêtre avec une taille fixe (1024 x 768 par ex), puis la redimensionner avant l'affichage (de la taille de l'écran)

Re: [..] Application adapté à la résolution de l'écran

Posté : lun. 06 janv. 2014 10:10
par Hugues
Merci, je regarde ça.

Re: [..] Application adapté à la résolution de l'écran

Posté : lun. 06 janv. 2014 19:57
par xPunKx
Ceci devrait t'aider pas mal :)

Code : Tout sélectionner

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

; Set resize mode for controls
Opt("GUIResizeMode", $GUI_DOCKAUTO)

$hGUI = GUICreate("Test", 500, 300, -1, -1, BitOR($WS_SIZEBOX, $WS_SYSMENU))

$cButton_1 = GUICtrlCreateButton("Test 1", 10, 10, 80, 30)
$cButton_2 = GUICtrlCreateButton("Test 2", 10, 50, 80, 30)

GUISetState()

GUIRegisterMsg($WM_SIZING, "_WM_SIZING")

While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            Exit
    EndSwitch
WEnd

Func _WM_SIZING($hWnd, $iMsg, $wParam, $lParam)

    #forceref $iMsg, $wParam, $wParam

    If $hWnd = $hGUI Then

        Local $iNew_H, $iNew_W

        Local $sRect = DllStructCreate("Int[4]", $lParam)
        Local $iLeft = DllStructGetData($sRect, 1, 1)
        Local $iTop = DllStructGetData($sRect, 1, 2)
        Local $iRight = DllStructGetData($sRect, 1, 3)
        Local $iBottom = DllStructGetData($sRect, 1, 4)
        ; Keep the same aspect ratio
        Switch $wParam ; drag side or corner
            Case 1, 2 ; $WMSZ_LEFT, $WMSZ_RIGHT
                $iNew_H = Int(($iRight - $iLeft) * 300 / 500)
                DllStructSetData($sRect, 1, DllStructGetData($sRect, 1, 2) + $iNew_H, 4)
            Case Else
                $iNew_W = Int(($iBottom - $iTop) * 500 / 300)
                DllStructSetData($sRect, 1, DllStructGetData($sRect, 1, 1) + $iNew_W, 3)
        EndSwitch
    EndIf

EndFunc

Re: [..] Application adapté à la résolution de l'écran

Posté : lun. 06 janv. 2014 21:22
par jguinch
@xPunKx : ta solution est 2500 fois plus simple que la mienne...
Je sors :arrow:

Re: [..] Application adapté à la résolution de l'écran

Posté : ven. 10 janv. 2014 11:19
par Hugues
OK merci à vous 2.

Sujet résolu.

Re: [R] Application adapté à la résolution de l'écran

Posté : mar. 12 févr. 2019 14:30
par Wolfblood
Bonjour à tous !

Je passais sur le sujet , et plutôt que recrée un sujet pour poser la même question q'ici, je venais sur celui-ci. Je suis néophyte dans le domaine excusez moi ! :oops: :oops:

Mais je n'ai pas bien compris la solution donnée ici . Si quelqu'un pouvais avoir la bonté de m'expliquer un peu plus en détails j'en serais honorée !

Merci à tous !

wolfbloody :3

Re: [R] Application adapté à la résolution de l'écran

Posté : mar. 12 févr. 2019 21:06
par mikell
Dans ce sujet, la relation entre le titre du sujet et la solution fournie n'est pas du tout évidente

Il faudrait que tu poses ta question de manière plus précise, quitte à créer un nouveau sujet. On se fâchera pas :mrgreen: