Je me permets de m'incruster dans ce post car je suis aussi dans le redimensionnement de GUI...
Je souhaite afficher un GUI sur PC et sur écran TV aussi.
Pour le ratio largeur d'écran c'est OK, mais pour le ratio vertical je n'arrive pas à trouver la solution...
Code : Tout sélectionner
[spoiler=]
;==[Options]==================
Opt("GUIOnEventMode", 1)
Opt("MouseCoordMode", 2)
;==[Includes]=================
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Misc.au3>
#Include <File.au3>
#include <Array.au3>
#include <Timers.au3>
#include <GuiStatusBar.au3>
#include <Color.au3>
#include <Date.au3>
#include <GuiListView.au3>
#include <StringSize.au3>
#include <StaticConstants.au3>
#include <MsgBoxConstants.au3>
#include <GuiImageList.au3>
#include <GuiButton.au3>
;==[Variables Globales]=======
Global $MainGUI, $ApplicationName, $iTimer1, $hStatus, $aParts[4] = [200, 450, 700, 200], $Color1 = 0x000000, $Color2 = 0x00f0ff, $InputMessage, $AvReValue, $AvReResult, $AvRe
Global $Title, $MAJAvRe, $Capacity, $CapacityTitle
Global $Label, $TextLabel, $LabelResult, $LabelValue, $CapaDayNivOnGoing, $CapaHourNivBasePOT, $CapaNextPerNiv, $MAJCapacite, $Label2, $TextLabel2, $LabelResult2, $LabelValue2
Global $LabelResult2, $LabelValue2, $LabelResult3, $LabelValue3, $Label4, $TextLabel4, $Label5, $TextLabel5, $Label6, $TextLabel6, $Label7, $TextLabel7
Global $CreneauTPM, $InfoLigne, $CoefW, $CoefH, $Width = 800, $Height = 600, $HeightControl, $TopSpaceControl = 4, $Left = 5
;$HeightControl = Hauteur des labels
;$TopSpaceControl = Espace entre chaque Control
_Ini()
_Main()
AdlibRegister("_ScreenAdaptation")
GUIRegisterMsg($WM_SIZE, "WM_SIZE")
GUIRegisterMsg($WM_TIMER, "WM_TIMER")
While GUIGetMsg() <> -3
WEnd
Func _Ini()
$CoefW = @DesktopWidth / $Width
$CoefH = @DesktopHeight / $Height
$HeightControl = 80
$ApplicationName = @UserName
$AvReValue = "1000"
$MAJAvRe = "1000"
$CapaDayNivOnGoing = "1000"
$CapaHourNivBasePOT = "1000"
$CapaNextPerNiv = "1000"
$MAJCapacite = "1000"
$CreneauTPM = "1000"
$InfoLigne = "1000"
EndFunc ;==>_Ini()
Func _Main()
$MainGUI = GUICreate($ApplicationName & " - Powered by Me", $Width * $CoefW, $Height * $CoefH, -1, -1, $WS_POPUP)
GUISetIcon(@ScriptDir & "\Ini\graph.ico", -2, $MainGUI)
$Size = WinGetClientSize($MainGUI)
GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
$hStatus = _GUICtrlStatusBar_Create($MainGUI, -1, "", $SBARS_TOOLTIPS)
_GUICtrlStatusBar_SetParts($hStatus, $aParts)
DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", $hStatus, "wstr", 0, "wstr", 0)
$hIcons = _WinAPI_LoadShell32Icon(265)
_GUICtrlStatusBar_SetIcon($hStatus, 0, $hIcons)
$hIcons2 = _WinAPI_LoadShell32Icon(170)
_GUICtrlStatusBar_SetIcon($hStatus, 1, $hIcons2)
$hIcons3 = _WinAPI_LoadShell32Icon(238)
_GUICtrlStatusBar_SetIcon($hStatus, 2, $hIcons3)
$hIcons4 = _WinAPI_LoadShell32Icon(172)
_GUICtrlStatusBar_SetIcon($hStatus, 3, $hIcons4)
GUIRegisterMsg($WM_TIMER, "WM_TIMER")
$iTimer1 = _Timer_SetTimer($MainGUI, 1000)
_GUICtrlStatusBar_SetText($hStatus, StringUpper(@username) & " on " & @ComputerName & " (" & @IPAddress1 & ")", 1)
_GUICtrlStatusBar_SetText($hStatus, $ApplicationName & " - Powered by Me", 3)
$Title = GUICtrlCreateLabel("", $Left, 5, $Width * $CoefW - 10, $HeightControl, BitOR($SS_CENTER, $SS_CENTERIMAGE), $WS_EX_CLIENTEDGE)
$TextTitle = "Entête 1"
GUICtrlSetData($Title, $TextTitle)
GUICtrlSetFont(-1, 46, 400, 0, "Arial")
GUICtrlSetBkColor(-1, 0x00FF00)
GUICtrlSetColor($Title, 0x000000)
$AvRe = GUICtrlCreateLabel("", $Left, $TopSpaceControl + $HeightControl, ($Width * $CoefW - 10) / 2, $HeightControl, BitOR($SS_CENTER, $SS_CENTERIMAGE), $WS_EX_CLIENTEDGE)
$Textx = "TEXTE 1"
GUICtrlSetData($AvRe, $Textx)
GUICtrlSetFont(-1, 24, 400, 0, "Arial")
GUICtrlSetBkColor(-1, 0xFF0000)
GUICtrlSetColor($Title, 0x000000)
$AvReResult = GUICtrlCreateLabel("", (($Width * $CoefW) / 2) ,$TopSpaceControl + $HeightControl, ($Width * $CoefW - 10) / 2, $HeightControl, BitOR($SS_CENTER, $SS_CENTERIMAGE), $WS_EX_CLIENTEDGE)
GUICtrlSetData($AvReResult, $AvReValue)
GUICtrlSetFont(-1, 44, 400, 0, "Arial")
;------------------------------------------------------------------------------------------------------------------------------------------------------
$Capacity = GUICtrlCreateLabel("", $Left, $TopSpaceControl + $HeightControl * 3, $Width * $CoefW - 10, $HeightControl, BitOR($SS_CENTER, $SS_CENTERIMAGE), $WS_EX_CLIENTEDGE)
$CapacityTitle = "Entête 2"
GUICtrlSetData($Capacity, $CapacityTitle)
GUICtrlSetFont(-1, 46, 400, 0, "Arial")
GUICtrlSetBkColor(-1, 0x00FF00)
GUICtrlSetColor($Capacity, 0x000000)
$Label = GUICtrlCreateLabel("", $Left, $CoefH * ($TopSpaceControl + 80 + 133), ($Width * $CoefW - 10) / 2, $HeightControl, BitOR($SS_CENTER, $SS_CENTERIMAGE), $WS_EX_CLIENTEDGE)
$TextLabel = "TEXTE 2"
GUICtrlSetData($Label, $TextLabel)
GUICtrlSetFont(-1, 24, 400, 0, "Arial")
GUICtrlSetBkColor(-1, 0xFF0000)
;GUICtrlSetColor($Label, 0x000000)
$LabelResult = GUICtrlCreateLabel("", (($Width * $CoefW) / 2), $CoefH * ($TopSpaceControl + 80 + 133), ($Width * $CoefW - 10) / 2, $HeightControl, BitOR($SS_CENTER, $SS_CENTERIMAGE), $WS_EX_CLIENTEDGE)
GUICtrlSetData($LabelResult, $CapaDayNivOnGoing)
GUICtrlSetFont(-1, 44, 400, 0, "Arial")
$Label2 = GUICtrlCreateLabel("", $Left, $CoefH * ($TopSpaceControl + 160 + 106), ($Width * $CoefW - 10) / 2, $HeightControl, BitOR($SS_CENTER, $SS_CENTERIMAGE), $WS_EX_CLIENTEDGE)
$TextLabel2 = "TEXTE 3"
GUICtrlSetData($Label2, $TextLabel2)
GUICtrlSetFont(-1, 24, 400, 0, "Arial")
GUICtrlSetBkColor(-1, 0xFF0000)
$LabelResult2 = GUICtrlCreateLabel("", (($Width * $CoefW) / 2), $CoefH * ($TopSpaceControl + 160 + 106), ($Width * $CoefW - 10) / 2, $HeightControl, BitOR($SS_CENTER, $SS_CENTERIMAGE), $WS_EX_CLIENTEDGE)
GUICtrlSetData($LabelResult2, $CapaHourNivBasePOT)
GUICtrlSetFont(-1, 44, 400, 0, "Arial")
$Label3 = GUICtrlCreateLabel("", $Left, $CoefH * ($TopSpaceControl + 160 + 159), ($Width * $CoefW - 10) / 2, $HeightControl, BitOR($SS_CENTER, $SS_CENTERIMAGE), $WS_EX_CLIENTEDGE)
$TextLabel3 = "TEXTE 4"
GUICtrlSetData($Label3, $TextLabel3)
GUICtrlSetFont(-1, 24, 400, 0, "Arial")
GUICtrlSetBkColor(-1, 0xFF0000)
$LabelResult3 = GUICtrlCreateLabel("", (($Width * $CoefW) / 2), $CoefH * ($TopSpaceControl + 160 + 159), ($Width * $CoefW - 10) / 2, $HeightControl, BitOR($SS_CENTER, $SS_CENTERIMAGE), $WS_EX_CLIENTEDGE)
GUICtrlSetData($LabelResult3, $CapaNextPerNiv)
GUICtrlSetFont(-1, 44, 400, 0, "Arial")
$Capacity = GUICtrlCreateLabel("", $Left, $CoefH * ($TopSpaceControl + 160 + 257), $Width * $CoefW - 10, $HeightControl, BitOR($SS_CENTER, $SS_CENTERIMAGE), $WS_EX_CLIENTEDGE)
$CapacityTitle = "Entête 3"
GUICtrlSetData($Capacity, $CapacityTitle)
GUICtrlSetFont(-1, 46, 400, 0, "Arial")
GUICtrlSetBkColor(-1, 0x00FF00)
$Label4 = GUICtrlCreateLabel("", $Left, 655 + 55, (($Width * $CoefW) / 4) - 10, $HeightControl, BitOR($SS_CENTER, $SS_CENTERIMAGE), $WS_EX_CLIENTEDGE)
$TextLabel4 = "TEXTE 5"
GUICtrlSetData($Label4, $TextLabel4)
GUICtrlSetFont(-1, 24, 400, 0, "Arial")
GUICtrlSetBkColor(-1, 0xFF0000)
$Label5 = GUICtrlCreateLabel("", (($Width * $CoefW) / 4) - 4, 655 + 55, ((($Width * $CoefW) / 4) * 3) - 2, $HeightControl, BitOR($SS_CENTER, $SS_CENTERIMAGE), $WS_EX_CLIENTEDGE)
$TextLabel5 = $CreneauTPM
GUICtrlSetData($Label5, $TextLabel5)
If StringLen($CreneauTPM) > 42 Then
GUICtrlSetFont(-1, 24, 400, 0, "Arial")
Else
GUICtrlSetFont(-1, 44, 400, 0, "Arial")
EndIf
$Label6 = GUICtrlCreateLabel("", $Left, 736 + 55, (($Width * $CoefW) / 4) - 10, $HeightControl, BitOR($SS_CENTER, $SS_CENTERIMAGE), $WS_EX_CLIENTEDGE)
$TextLabel6 = "TEXTE 6"
GUICtrlSetData($Label6, $TextLabel6)
GUICtrlSetFont(-1, 24, 400, 0, "Arial")
GUICtrlSetBkColor(-1, 0xFF0000)
$Label7 = GUICtrlCreateLabel("", (($Width * $CoefW) / 4) - 4, 736 + 55, ((($Width * $CoefW) / 4) * 3) - 2, $HeightControl, BitOR($SS_CENTER, $SS_CENTERIMAGE), $WS_EX_CLIENTEDGE)
$TextLabel7 = $InfoLigne
GUICtrlSetData($Label7, $TextLabel7)
If StringLen($InfoLigne) > 42 Then
GUICtrlSetFont(-1, 24, 400, 0, "Arial")
Else
GUICtrlSetFont(-1, 44, 400, 0, "Arial")
EndIf
GUISetState()
EndFunc ;==>_Main()
Func WM_SIZE($hWnd, $iMsg, $iwParam, $ilParam)
#forceref $hWnd, $iMsg, $iwParam, $ilParam
_GUICtrlStatusBar_Resize($hStatus)
GUICtrlSetResizing($InputMessage, $GUI_DOCKBORDERS)
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_SIZE
Func _ScreenAdaptation()
$WorkAera = _GetWorkArea() ;Etait Local $WorkAera = _GetWorkArea() et non Global
Local $aGuiPos = WinGetPos($MainGUI)
If $aGuiPos[0] <> $WorkAera[0] Or $aGuiPos[1] <> $WorkAera[1] Or $aGuiPos[2] <> $WorkAera[4] Or $aGuiPos[3] <> $WorkAera[5] Then WinMove($MainGUI, "", $WorkAera[0], $WorkAera[1], $WorkAera[4], $WorkAera[5])
Return $WorkAera
EndFunc ;==>_ScreenAdaptation
Func _GetWorkArea()
Global $Area[6]
Local $StartRect = DllStructCreate("int[4]")
Local $PStartRect = DllStructGetPtr($StartRect)
DllCall("user32.dll", "int", "SystemParametersInfo", "int", 48, "int", 0, "ptr", $PStartRect, "int", 0)
$Area[0] = DllStructGetData($StartRect, 1, 1)
$Area[1] = DllStructGetData($StartRect, 1, 2)
$Area[2] = DllStructGetData($StartRect, 1, 3)
$Area[3] = DllStructGetData($StartRect, 1, 4)
$Area[4] = $Area[2] - $Area[0]
$Area[5] = $Area[3] - $Area[1]
Return $Area
EndFunc ;==>_GetWorkArea
Func WM_TIMER($hWnd, $iMsg, $iwParam, $ilParam)
#forceref $hWnd, $iMsg, $ilParam
Switch _Timer_GetTimerID($iwParam)
Case $iTimer1
_UpdateStatusBarClock()
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_TIMER
Func _UpdateStatusBarClock()
_GUICtrlStatusBar_SetText($hStatus, @TAB & StringFormat(_NowDate() & " " & "%02d:%02d:%02d", @HOUR, @MIN, @SEC), 0)
EndFunc ;==>_UpdateStatusBarClock()
Func _Exit()
Exit
EndFunc ;==>_Exit()
[/spoiler]