Obtient la position de défilement du contrôle
#include <GuiRichEdit.au3>
_GUICtrlRichEdit_GetScrollPos ( $hWnd )
$hWnd | Handle du contrôle |
Succès: | Retourne un tableau contenant [x, y] |
Échec: | Définit @error <> 0. |
@error: | 101 - $hWnd n'est pas un handle |
La position de défilement est le coin supérieur gauche du contrôle.
_GUICtrlRichEdit_GetSelAA, _GUICtrlRichEdit_SetScrollPos
Consultez EM_GETSCROLLPOS dans la librairie MSDN.
#include <GUIConstantsEx.au3> #include <GuiRichEdit.au3> #include <WindowsConstants.au3> Global $g_idLblMsg, $g_hRichEdit Example() Func Example() Local $hGui, $iMsg, $idBtnNext, $iStep = 0 $hGui = GUICreate("Exemple (" & StringTrimRight(@ScriptName, 4) & ")", 320, 350, -1, -1) $g_hRichEdit = _GUICtrlRichEdit_Create($hGui, "", 10, 10, 300, 220, _ BitOR($ES_MULTILINE, $WS_VSCROLL, $ES_AUTOVSCROLL)) $g_idLblMsg = GUICtrlCreateLabel("", 10, 235, 300, 60) $idBtnNext = GUICtrlCreateButton("Suivant", 270, 310, 40, 30) GUISetState(@SW_SHOW) _GUICtrlRichEdit_SetText($g_hRichEdit, "Paragraphe 1") For $i = 2 To 20 _GUICtrlRichEdit_AppendText($g_hRichEdit, @CRLF & "Paragraphe " & $i) Next Report("0. Initiallement défilé pour montrer le point d'insertion") $iMsg = GUIGetMsg() While $iMsg <> $GUI_EVENT_CLOSE If $iMsg = $idBtnNext Then $iStep += 1 Switch $iStep Case 1 _GUICtrlRichEdit_SetScrollPos($g_hRichEdit, 0, 0) Report("1. Fait défiler vers le haut") Case 2 _GUICtrlRichEdit_SetScrollPos($g_hRichEdit, 7, 22) Report("2. Fait défiler vers le bas d'un pas, et vers la droite") GUICtrlSetState($idBtnNext, $GUI_DISABLE) EndSwitch EndIf $iMsg = GUIGetMsg() WEnd _GUICtrlRichEdit_Destroy($g_hRichEdit) ; Nécessaire sauf si le script se bloque ; GUIDelete(); est OK aussi EndFunc ;==>Example Func Report($sMsg) Local $aPos = _GUICtrlRichEdit_GetScrollPos($g_hRichEdit) $sMsg = $sMsg & @CRLF & @CRLF & "Obtient le retour de la fonction: " & $aPos[0] & ";" & $aPos[1] GUICtrlSetData($g_idLblMsg, $sMsg) EndFunc ;==>Report