Je sais maintenant comment exploiter _WinAPI_GetWindowRect ( $hWnd ).
Cela marche bien car je peux récupérer les données de REC.
Je vous fournis ce code :
Code : Tout sélectionner
#include-once;inclus les includes une seule fois
#include <GDIPlus.au3>
#include <WindowsConstants.au3>
#include <MsgBoxConstants.au3>
#include <FontConstants.au3>
#include <WinAPISys.au3>
#include <ColorConstantS.au3>
#include <GuiButton.au3>
#include <Sound.au3>
#include <Array.au3>
#include <APIThemeConstants.au3>
#include <GUIConstantsEx.au3>
#include <WinAPITheme.au3>
#include <GuiMenu.au3>
#include <StructureConstants.au3>
#include <WinAPI.au3>
;------------------------------------------------------------------------------------------------------
Global $fen1
;------------------------------------------------------------------------------------------------------
Func Ouvrir_fenetre()
$fen1=GUICreate("Test",640,480+_WinAPI_GetSystemMetrics($SM_CYMENU),-1,-1,BitOR($WS_MINIMIZEBOX, $WS_CAPTION, $WS_SYSMENU,$WS_SIZEBOX))
;-------------------------------------------
GUISetState(@SW_SHOW)
EndFunc
;----------------------------------------------------------------
Func En_avant()
Ouvrir_fenetre()
GUIRegisterMsg($WM_SIZING, "WM_SIZING")
While 1
$aMsg = GUIGetMsg(1)
$mousex = _WinAPI_GetMousePosX(True, $fen1);position souris x cliente
$mousey = _WinAPI_GetMousePosY(True, $fen1);position souris y cliente
;-----------------Fenêtre principale--------------
Switch $aMsg[1]
Case $fen1
Switch $aMsg[0]
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
EndSwitch
WEnd
EndFunc
;----------------------------------------------------------------
Func WM_SIZING($hWnd, $uMsgm, $wParam, $lParam)
#forceref $uMsgm, $wParam, $lParam
$tRECT = _WinAPI_GetClientRect($hWnd)
$Left=DllStructGetData($tRECT, "Left")
$Right=DllStructGetData($tRECT, "Right")
$Top=DllStructGetData($tRECT, "Top")
$Bottom=DllStructGetData($tRECT, "Bottom")
;-------------------------
;-------------------------
$WMSZ_LEFT=1
$WMSZ_RIGHT=2
$WMSZ_BOTTOMRIGHT=8
$WMSZ_BOTTOMLEFT=7
$WMSZ_TOP=3
$WMSZ_BOTTOM=6
$WMSZ_TOPRIGHT=5
$WMSZ_TOPLEFT=4
;-------------------------
;-------------------------
$tRECT = 0
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_SIZE
;----------------------------------------------------------------
En_avant()
Donc il faut que je sache ce que l'utilisateur sélectionne.
Je sais que wParam me donnera l'endroit où la fenêtre va être modifié mais je n'ai pas les coordonnées.
Je sais que lParam est un pointeur où se trouve la solution mais je ne sais pas comment exploiter lParam en AutoIt.
Donc il me faudrait lire dans lParam et pouvoir écrire aussi dedans (en fait dans REC).
WinAPI_GetClientRect($hWnd) me donne les coordonnées de REC à l'ouverture de la fenêtre mais il faut que je sache lire dans REC quand l'utilisateur modifie la fenêtre.
Je n'arrive pas à trouver la fonction qui convienne.
Merci à ceux qui savent de me donner une solution.