Comme c'est pas forcément très clair le mieux c'est de tester:
► Afficher le texte
Code : Tout sélectionner
#include <GUIConstantsEx.au3>
#include <Misc.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Test redim section",600,600, 192, 124,0x00040000)
$label_zone_redim = GUICtrlCreatelabel("", 580,130,20,250)
GUICtrlSetState(-1,$gui_disable)
GUICtrlSetBkColor(-1,0xFED6F9)
$edit1= GUICtrlCreateListView("col1|col2", 0, 5,530,275)
$bouton2 = GUICtrlCreateButton("boutton test",530,260,70,20)
$edit2= GUICtrlCreateListView("col", 0, 310,200,150)
$bouton1 = GUICtrlCreateButton("boutton test",10,285,100,20)
$edit3= GUICtrlCreateListView("col", 250,285,200,150)
$label_redim = GUICtrlCreatelabel("", 0, 280,598, 5)
GUICtrlSetBkColor(-1,0x000000)
GUICtrlSetCursor (-1,11)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
case $label_redim
;la deuxieme dimension du tableau est la méthode de redimensionnement (0=on modifie la hauteur du control; 1=on déplace en hauteur le control)
global $controls_redim[5][2] = [[$edit1,0],[$bouton1,1],[$bouton2,1],[$edit2,0],[$edit3,0]]
_redim_hauteur($controls_redim,$label_redim,$label_zone_redim)
EndSwitch
WEnd
func _redim_hauteur($controls_redim,$label_redim,$label_zone_redim,$gui = $Form1,$max_bas=0,$max_haut=100)
;$label_zone_redim = label servant de délimitations en hauteur
;$label_redim = label servant à effectuer le déplacement avec la souris
;$controls_redim = tableau contenant tous les controls à redimensionner
if not IsArray($controls_redim) then return False
$pos_gui = WinGetPos($gui)
$pos_zone = ControlGetPos($gui,"",$label_zone_redim)
$tmp_largeur_gui = WinGetClientSize($gui)
$bordure = ($pos_gui[2]-$tmp_largeur_gui[0])/2
$barre_sup = ($pos_gui[3]-$tmp_largeur_gui[1])-$bordure
$pos_zone_ecran_y = $pos_gui[1] + $barre_sup + $pos_zone[1]
While 1
if not _IsPressed(01) then ExitLoop
$pos_mouse = MouseGetPos()
$coor_mouse_y = $pos_mouse[1]
$control_label_redim_pos = ControlGetPos($gui,"",$label_redim)
global $last_hauteur_label_redim = $control_label_redim_pos[1]
$new_pos_hauteur = ($coor_mouse_y - $pos_zone_ecran_y)
$zone_hauteur = $pos_zone[3]
$pourcentage_hauteur =( $new_pos_hauteur / $zone_hauteur)*100
if $pourcentage_hauteur < $max_bas Then $new_pos_hauteur = (($zone_hauteur/100)*$max_bas)
if $pourcentage_hauteur > $max_haut Then $new_pos_hauteur = (($zone_hauteur/100)*$max_haut)
GUICtrlSetPos($label_redim,0,$new_pos_hauteur+ $pos_zone[1])
$control_label_redim_pos = ControlGetPos($gui,"",$label_redim)
for $i = 0 to UBound($controls_redim)-1
$tmp_pos = ControlGetPos($gui,"",$controls_redim[$i][0])
$tmp_diff_hauteur = $control_label_redim_pos[1] - $last_hauteur_label_redim
if $tmp_pos[1] > $last_hauteur_label_redim Then ;le control est en bas
if $controls_redim[$i][1] = 0 then GUICtrlSetPos($controls_redim[$i][0],$tmp_pos[0],($tmp_pos[1]+$tmp_diff_hauteur),$tmp_pos[2],($tmp_pos[3]-$tmp_diff_hauteur))
Else;le control est en haut
if $controls_redim[$i][1] = 0 then GUICtrlSetPos($controls_redim[$i][0],$tmp_pos[0],$tmp_pos[1],$tmp_pos[2],($tmp_pos[3]+$tmp_diff_hauteur))
EndIf
if $controls_redim[$i][1] = 1 then GUICtrlSetPos($controls_redim[$i][0],$tmp_pos[0],($tmp_pos[1]+$tmp_diff_hauteur),$tmp_pos[2],$tmp_pos[3])
Next
Sleep(10);delai de rafraichissement
WEnd
EndFunc

EDIT: voila

► Afficher le texte
Code : Tout sélectionner
#include <GUIConstantsEx.au3>
#include <Misc.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Test redim section",600,600, 192, 124,0x00040000)
$label_zone_redim = GUICtrlCreatelabel("", 580,130,20,250)
GUICtrlSetState(-1,$gui_disable)
GUICtrlSetBkColor(-1,0xFED6F9)
$label_zone_redim2 = GUICtrlCreatelabel("", 150,550,250,20)
GUICtrlSetState(-1,$gui_disable)
GUICtrlSetBkColor(-1,0xFED6F9)
$edit1= GUICtrlCreateListView("col1|col2", 0, 5,530,275)
$bouton2 = GUICtrlCreateButton("boutton test",530,260,70,20)
$edit2= GUICtrlCreateListView("col", 0, 310,200,150)
$bouton1 = GUICtrlCreateButton("boutton test",65,285,100,20)
$edit3= GUICtrlCreateListView("col", 250,285,200,150)
$label_redim = GUICtrlCreatelabel("", 0, 280,598, 5)
GUICtrlSetBkColor(-1,0x000000)
GUICtrlSetCursor (-1,11)
$label_redim2 = GUICtrlCreatelabel("", 220, 285,5, 291)
GUICtrlSetBkColor(-1,0x000000)
GUICtrlSetCursor (-1,13)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
case $label_redim
;la deuxieme dimension du tableau est la méthode de redimensionnement (0=on modifie la hauteur du control; 1=on déplace en hauteur le control)
global $controls_redim[6][2] = [[$edit1,0],[$bouton1,1],[$bouton2,1],[$edit2,0],[$edit3,0],[$label_redim2,0]]
_redim_hauteur($controls_redim,$label_redim,$label_zone_redim)
case $label_redim2
;la deuxieme dimension du tableau est la méthode de redimensionnement (0=on modifie la largeur du control; 1=on déplace en largeur le control)
global $controls_redim[3][2] = [[$edit2,0],[$edit3,0],[$bouton1,1]]
_redim_largeur($controls_redim,$label_redim2,$label_zone_redim2)
EndSwitch
WEnd
func _redim_hauteur($controls_redim,$label_redim,$label_zone_redim,$gui = $Form1,$max_bas=0,$max_haut=100)
;$label_zone_redim = label servant de délimitations en hauteur
;$label_redim = label servant à effectuer le déplacement avec la souris
;$controls_redim = tableau contenant tous les controls à redimensionner
if not IsArray($controls_redim) then return False
$pos_gui = WinGetPos($gui)
$pos_zone = ControlGetPos($gui,"",$label_zone_redim)
$tmp_largeur_gui = WinGetClientSize($gui)
$bordure = ($pos_gui[2]-$tmp_largeur_gui[0])/2
$barre_sup = ($pos_gui[3]-$tmp_largeur_gui[1])-$bordure
$pos_zone_ecran_y = $pos_gui[1] + $barre_sup + $pos_zone[1]
While 1
if not _IsPressed(01) then ExitLoop
$pos_mouse = MouseGetPos()
$coor_mouse_y = $pos_mouse[1]
$control_label_redim_pos = ControlGetPos($gui,"",$label_redim)
global $last_hauteur_label_redim = $control_label_redim_pos[1]
$new_pos_hauteur = ($coor_mouse_y - $pos_zone_ecran_y)
$zone_hauteur = $pos_zone[3]
$pourcentage_hauteur =( $new_pos_hauteur / $zone_hauteur)*100
if $pourcentage_hauteur < $max_bas Then $new_pos_hauteur = (($zone_hauteur/100)*$max_bas)
if $pourcentage_hauteur > $max_haut Then $new_pos_hauteur = (($zone_hauteur/100)*$max_haut)
GUICtrlSetPos($label_redim,$control_label_redim_pos[0],$new_pos_hauteur+ $pos_zone[1])
$control_label_redim_pos = ControlGetPos($gui,"",$label_redim)
for $i = 0 to UBound($controls_redim)-1
$tmp_pos = ControlGetPos($gui,"",$controls_redim[$i][0])
$tmp_diff_hauteur = $control_label_redim_pos[1] - $last_hauteur_label_redim
if $tmp_pos[1] > $last_hauteur_label_redim Then ;le control est en bas
if $controls_redim[$i][1] = 0 then GUICtrlSetPos($controls_redim[$i][0],$tmp_pos[0],($tmp_pos[1]+$tmp_diff_hauteur),$tmp_pos[2],($tmp_pos[3]-$tmp_diff_hauteur))
Else;le control est en haut
if $controls_redim[$i][1] = 0 then GUICtrlSetPos($controls_redim[$i][0],$tmp_pos[0],$tmp_pos[1],$tmp_pos[2],($tmp_pos[3]+$tmp_diff_hauteur))
EndIf
if $controls_redim[$i][1] = 1 then GUICtrlSetPos($controls_redim[$i][0],$tmp_pos[0],($tmp_pos[1]+$tmp_diff_hauteur),$tmp_pos[2],$tmp_pos[3])
Next
Sleep(10);delai de rafraichissement
WEnd
EndFunc
func _redim_largeur($controls_redim,$label_redim,$label_zone_redim,$gui = $Form1,$max_droite=0,$max_gauche=100)
;$label_zone_redim = label servant de délimitations en largeur
;$label_redim = label servant à effectuer le déplacement avec la souris
;$controls_redim = tableau contenant tous les controls à redimensionner
if not IsArray($controls_redim) then return False
$pos_gui = WinGetPos($gui)
$pos_zone = ControlGetPos($gui,"",$label_zone_redim)
$tmp_largeur_gui = WinGetClientSize($gui)
$bordure = ($pos_gui[2]-$tmp_largeur_gui[0])/2
$pos_zone_ecran_x = $pos_gui[0] + $bordure + $pos_zone[0]
While 1
if not _IsPressed(01) then ExitLoop
$pos_mouse = MouseGetPos()
$coor_mouse_x = $pos_mouse[0]
$control_label_redim_pos = ControlGetPos($gui,"",$label_redim)
global $last_largeur_label_redim = $control_label_redim_pos[0]
$new_pos_largeur = ($coor_mouse_x - $pos_zone_ecran_x)
$zone_largeur = $pos_zone[2]
$pourcentage_largeur =( $new_pos_largeur / $zone_largeur)*100
if $pourcentage_largeur < $max_droite Then $new_pos_largeur = (($zone_largeur/100)*$max_droite)
if $pourcentage_largeur > $max_gauche Then $new_pos_largeur = (($zone_largeur/100)*$max_gauche)
GUICtrlSetPos($label_redim,$new_pos_largeur+$pos_zone[0])
$control_label_redim_pos = ControlGetPos($gui,"",$label_redim)
for $i = 0 to UBound($controls_redim)-1
$tmp_pos = ControlGetPos($gui,"",$controls_redim[$i][0])
$tmp_diff_largeur = $control_label_redim_pos[0] - $last_largeur_label_redim
if $tmp_pos[0] > $last_largeur_label_redim Then ;le control est à droite
if $controls_redim[$i][1] = 0 then GUICtrlSetPos($controls_redim[$i][0],$tmp_pos[0]+$tmp_diff_largeur,$tmp_pos[1],$tmp_pos[2]-$tmp_diff_largeur)
Else;le control est à gauche
if $controls_redim[$i][1] = 0 then GUICtrlSetPos($controls_redim[$i][0],$tmp_pos[0],$tmp_pos[1],$tmp_pos[2]+$tmp_diff_largeur)
EndIf
if $controls_redim[$i][1] = 1 then GUICtrlSetPos($controls_redim[$i][0],$tmp_pos[0]+$tmp_diff_largeur)
Next
Sleep(10);delai de rafraichissement
WEnd
EndFunc
► Afficher le texte
Code : Tout sélectionner
#include <GUIConstantsEx.au3>
#include <Misc.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Test redim section",600,600, 192, 124,0x00040000)
$label_zone_redim = GUICtrlCreatelabel("", 580,130,20,250)
GUICtrlSetState(-1,$gui_disable)
GUICtrlSetBkColor(-1,0xFED6F9)
$label_zone_redim2 = GUICtrlCreatelabel("", 150,550,250,20)
GUICtrlSetState(-1,$gui_disable)
GUICtrlSetBkColor(-1,0xFED6F9)
$edit1= GUICtrlCreateListView("col1|col2", 0, 5,530,272)
$bouton2 = GUICtrlCreateButton("boutton test",530,260,70,20)
$edit2= GUICtrlCreateListView("col", 0, 310,200,150)
$bouton1 = GUICtrlCreateButton("boutton test",65,285,100,20)
$edit3= GUICtrlCreateListView("col", 250,285,200,150)
$label_redim3 = GUICtrlCreatelabel("", 217, 277,11, 11)
GUICtrlSetBkColor(-1,0xFE0101)
GUICtrlSetCursor (-1,9)
$label_redim = GUICtrlCreatelabel("", 0, 280,598, 5)
GUICtrlSetBkColor(-1,0x000000)
GUICtrlSetCursor (-1,11)
$label_redim2 = GUICtrlCreatelabel("", 220, 285,5, 291)
GUICtrlSetBkColor(-1,0x000000)
GUICtrlSetCursor (-1,13)
GUISetState(@SW_SHOW)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
global $controls_redim_hauteur[7][2] = [[$edit1,0],[$bouton1,1],[$bouton2,1],[$edit2,0],[$edit3,0],[$label_redim2,0],[$label_redim3,1]]
global $controls_redim_largeur[4][2] = [[$edit2,0],[$edit3,0],[$bouton1,1],[$label_redim3,1]]
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
case $label_redim
_redim_hauteur($controls_redim_hauteur,$label_redim,$label_zone_redim)
case $label_redim2
_redim_largeur($controls_redim_largeur,$label_redim2,$label_zone_redim2)
case $label_redim3
_redim($controls_redim_hauteur,$controls_redim_largeur,$label_redim,$label_redim2,$label_zone_redim,$label_zone_redim2)
EndSwitch
WEnd
func _redim_hauteur($controls_redim,$label_redim,$label_zone_redim,$gui = $Form1,$max_haut=0,$max_bas=100)
if not IsArray($controls_redim) then return False
$pos_gui = WinGetPos($gui)
$pos_zone = ControlGetPos($gui,"",$label_zone_redim)
$tmp_largeur_gui = WinGetClientSize($gui)
$bordure = ($pos_gui[2]-$tmp_largeur_gui[0])/2
$barre_sup = ($pos_gui[3]-$tmp_largeur_gui[1])-$bordure
$pos_zone_ecran_y = $pos_gui[1] + $barre_sup + $pos_zone[1]
While 1
if not _IsPressed(01) then ExitLoop
_redim_exec($controls_redim,$label_redim,$max_haut,$max_bas,$pos_zone_ecran_y,$pos_zone,$Form1,1,3)
Sleep(10);delai de rafraichissement
WEnd
EndFunc
func _redim_largeur($controls_redim,$label_redim,$label_zone_redim,$gui = $Form1,$max_gauche=0,$max_droite=100)
if not IsArray($controls_redim) then return False
$pos_gui = WinGetPos($gui)
$pos_zone = ControlGetPos($gui,"",$label_zone_redim)
$tmp_largeur_gui = WinGetClientSize($gui)
$bordure = ($pos_gui[2]-$tmp_largeur_gui[0])/2
$pos_zone_ecran = $pos_gui[0] + $bordure + $pos_zone[0]
While 1
if not _IsPressed(01) then ExitLoop
_redim_exec($controls_redim,$label_redim,$max_gauche,$max_droite,$pos_zone_ecran,$pos_zone)
Sleep(10);delai de rafraichissement
WEnd
EndFunc
func _redim($controls_redim_hauteur,$controls_redim_largeur,$label_redim_hauteur,$label_redim_largeur,$label_zone_redim_hauteur,$label_zone_redim_largeur,$gui = $Form1,$max_haut=0,$max_bas=100,$max_gauche=0,$max_droite=100)
if not IsArray($controls_redim_hauteur) then return False
if not IsArray($controls_redim_largeur) then return False
$pos_gui = WinGetPos($gui)
$pos_zone_y = ControlGetPos($gui,"",$label_zone_redim_hauteur)
$pos_zone_x = ControlGetPos($gui,"",$label_zone_redim_largeur)
$tmp_largeur_gui = WinGetClientSize($gui)
$bordure = ($pos_gui[2]-$tmp_largeur_gui[0])/2
$barre_sup = ($pos_gui[3]-$tmp_largeur_gui[1])-$bordure
$pos_zone_ecran_y = $pos_gui[1] + $barre_sup + $pos_zone_y[1]
$pos_zone_ecran_x = $pos_gui[0] + $bordure + $pos_zone_x[0]
While 1
if not _IsPressed(01) then ExitLoop
_redim_exec($controls_redim_hauteur,$label_redim_hauteur,$max_haut,$max_bas,$pos_zone_ecran_y,$pos_zone_y,$Form1,1,3)
_redim_exec($controls_redim_largeur,$label_redim_largeur,$max_gauche,$max_droite,$pos_zone_ecran_x,$pos_zone_x)
Sleep(10);delai de rafraichissement
WEnd
EndFunc
func _redim_exec($controls_redim,$label_redim,$max_1,$max_2,$pos_zone_ecran,$pos_zone,$gui = $Form1,$1=0,$2=2,$3=1)
$pos_mouse = MouseGetPos()
$coor_mouse = $pos_mouse[$1]
$control_label_redim_pos = ControlGetPos($gui,"",$label_redim)
global $last_label_redim = $control_label_redim_pos[$1]
$new_pos = ($coor_mouse - $pos_zone_ecran)
$zone = $pos_zone[$2]
$pourcentage =( $new_pos / $zone)*100
if $pourcentage < $max_1 Then $new_pos = (($zone/100)*$max_1)
if $pourcentage > $max_2 Then $new_pos = (($zone/100)*$max_2)
if $1 = 0 then
GUICtrlSetPos($label_redim,$new_pos+$pos_zone[$1])
Else
GUICtrlSetPos($label_redim,$control_label_redim_pos[0],$new_pos+ $pos_zone[1])
EndIf
$control_label_redim_pos = ControlGetPos($gui,"",$label_redim)
for $i = 0 to UBound($controls_redim)-1
$tmp_pos = ControlGetPos($gui,"",$controls_redim[$i][0])
$tmp_diff = $control_label_redim_pos[$1] - $last_label_redim
if $1 = 0 then
if $tmp_pos[$1] > $last_label_redim Then
if $controls_redim[$i][1] = 0 then GUICtrlSetPos($controls_redim[$i][0],$tmp_pos[$1]+$tmp_diff,$tmp_pos[$3],$tmp_pos[$2]-$tmp_diff)
Else
if $controls_redim[$i][1] = 0 then GUICtrlSetPos($controls_redim[$i][0],$tmp_pos[$1],$tmp_pos[$3],$tmp_pos[$2]+$tmp_diff)
EndIf
if $controls_redim[$i][1] = 1 then GUICtrlSetPos($controls_redim[$i][0],$tmp_pos[$1]+$tmp_diff)
Else
if $tmp_pos[1] > $last_label_redim Then ;le control est en bas
if $controls_redim[$i][1] = 0 then GUICtrlSetPos($controls_redim[$i][0],$tmp_pos[0],($tmp_pos[1]+$tmp_diff),$tmp_pos[2],($tmp_pos[3]-$tmp_diff))
Else;le control est en haut
if $controls_redim[$i][1] = 0 then GUICtrlSetPos($controls_redim[$i][0],$tmp_pos[0],$tmp_pos[1],$tmp_pos[2],($tmp_pos[3]+$tmp_diff))
EndIf
if $controls_redim[$i][1] = 1 then GUICtrlSetPos($controls_redim[$i][0],$tmp_pos[0],($tmp_pos[1]+$tmp_diff),$tmp_pos[2],$tmp_pos[3])
EndIf
Next
EndFunc