Code : Tout sélectionner
#include <GuiStatusBar.au3>
#include <GuiToolbar.au3>
#include <Constants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Include <GuiRebar.au3>
Opt('MustDeclareVars', 0)
$Debug_TB = False ; Check ClassName being passed to functions, set to True and use a handle to another control to see it work
Local $aParts[4] = [75, 150, 175,-1]
Local $hGUI, $hToolbar, $aStrings[4], $statusbarc, $mousepos, $text, $rebar1
Global $aUtil_MinMax[4]
Local Enum $idNew = 1000, $idOpen, $idSave, $idHelp
Local $aText[4] = ["Left Justified", @TAB & "Centered", @TAB & @TAB & "Right Justified"]
Local $clientsize, $clientsize2, $clientsize1
Global $hStatus
InitMinMax(200,200,@DesktopWidth,@DesktopHeight)
$Debug_SB = False ; Check ClassName being passed to functions, set to True and use a handle to another control to see it work
Local $hGUI
; Create GUI
$hGUI = GUICreate("StatusBar Resize", 400, 300, -1, -1, $WS_MAXIMIZEBOX + $WS_MINIMIZEBOX + $WS_SIZEBOX)
$lblAdresse = GUICtrlCreateLabel(" Adresse : ",6,38)
$txtAdresse = GUICtrlCreateInput("",58,35,692)
$rebar1 = _GUICtrlRebar_Create($hGUI, $RBS_AUTOSIZE+$RBS_DBLCLKTOGGLE)
$tool1 = _GUICtrlReBar_AddBand($rebar1,$lblAdresse,"50","20")
$tool2 = _GUICtrlReBar_AddBand($rebar1,$txtAdresse,"50","20","Adresse:")
$hStatus = _GUICtrlStatusBar_Create ($hGUI, $aParts, $aText)
GUIRegisterMsg($WM_SIZE, "WM_SIZE")
GUISetState()
; Loop until user exits
; Resize the status bar when GUI size changes
Func WM_SIZE($hWnd, $iMsg, $iwParam, $ilParam)
_GUICtrlStatusBar_Resize ($hStatus)
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_SIZE
While 1
$clientsize = WinGetClientSize("StatusBar Resize")
$clientsize1 = $clientsize[0]
$clientsize2 = $clientsize[1]
$mousepos = GUIGetCursorInfo($hGUI)
_GUICtrlStatusBar_SetText ($hStatus, $mousepos[0], 0)
_GUICtrlStatusBar_SetText ($hStatus, $mousepos[1], 1)
_GUICtrlStatusBar_SetText ($hStatus, $mousepos[2], 2)
_GUICtrlStatusBar_SetText ($hStatus, $mousepos[3], 3)
If GUIGetMsg() = $GUI_EVENT_CLOSE Then
Exit
EndIf
WEnd
Func InitMinMax($x0,$y0,$x1,$y1)
Local Const $WM_GETMINMAXINFO = 0x24
$aUtil_MinMax[0]=$x0
$aUtil_MinMax[1]=$y0
$aUtil_MinMax[2]=$x1
$aUtil_MinMax[3]=$y1
GUIRegisterMsg($WM_GETMINMAXINFO,'MY_WM_GETMINMAXINFO')
EndFunc
Func MY_WM_GETMINMAXINFO($hWnd, $Msg, $wParam, $lParam)
Local $minmaxinfo = DllStructCreate('int;int;int;int;int;int;int;int;int;int',$lParam)
DllStructSetData($minmaxinfo,7,$aUtil_MinMax[0]); min X
DllStructSetData($minmaxinfo,8,$aUtil_MinMax[1]); min Y
DllStructSetData($minmaxinfo,9,$aUtil_MinMax[2]); max X
DllStructSetData($minmaxinfo,10,$aUtil_MinMax[3]); max Y
Return $GUI_RUNDEFMSG
EndFunc