UDF > GUI > GuiRichEdit >


_GUICtrlRichEdit_ScrollLines

Fait défiler le texte vers le bas ou vers le haut d'un certain nombre de lignes

#include <GuiRichEdit.au3>
_GUICtrlRichEdit_ScrollLines ( $hWnd, $iQlines )

Paramètres

$hWnd Handle du contrôle
$iQlines Nombre de lignes de défilement souhaité

Valeur de retour

Succès: Retourne True.
Échec: Retourne False et définit @error <> 0.
@error: 101 - $hWnd n'est pas un handle
102 - $iQlines n'est pas numérique
700 - tentative de défilement d'une seule ligne

Remarques

Pour faire défiler vers le bas, mettre $iQlines à une valeur positive; pour faire défiler vers le haut, une valeur négative.

_GUICtrlRichEdit_ScrollLines() se comporte bien:
    si $iQlines est plus grand que le nombre de lignes en dessous de la ligne courant, la fonction fait défiler pour afficher uniquement la dernière ligne;
    si $iQlines est négatif et indique une ligne avant la première, la fonction fait défiler pour afficher la première ligne en haut de la fenêtre du contrôle.

En relation

_GUICtrlRichEdit_ScrollLineOrPage, _GUICtrlRichEdit_ScrollToCaret

Voir aussi

Consultez EM_LINESCROLL dans la librairie MSDN.

Exemple

#include <GUIConstantsEx.au3>
#include <GuiRichEdit.au3>
#include <WindowsConstants.au3>

Global $g_idLblMsg

Example()

Func Example()
    Local $hGui, $iMsg, $idBtnNext, $hRichEdit, $iStep = 0
    $hGui = GUICreate("Exemple (" & StringTrimRight(@ScriptName, 4) & ")", 320, 350, -1, -1)
    $hRichEdit = _GUICtrlRichEdit_Create($hGui, "Ceci est un test.", 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)

    For $i = 1 To 20
        _GUICtrlRichEdit_AppendText($hRichEdit, "Line " & $i & @CRLF)
    Next
    _GUICtrlRichEdit_AppendText($hRichEdit, "Ligne 21")

    $iMsg = GUIGetMsg()
    While $iMsg <> $GUI_EVENT_CLOSE
        If $iMsg = $idBtnNext Then
            $iStep += 1
            Switch $iStep
                Case 1
                    _GUICtrlRichEdit_ScrollLines($hRichEdit, -10.2)
                    Report("A défilé vers le haut")
                Case 2
                    _GUICtrlRichEdit_ScrollLines($hRichEdit, +100)
                     Report("A défilé vers le bas pour que la dernière ligne soit montrée")
                 Case 3
                    _GUICtrlRichEdit_ScrollLines($hRichEdit, -200)
                    Report("A défilé vers le haut tout le texte")
                    GUICtrlSetState($idBtnNext, $GUI_DISABLE)
            EndSwitch
        EndIf
        $iMsg = GUIGetMsg()
    WEnd

    _GUICtrlRichEdit_Destroy($hRichEdit) ; Nécessaire sauf si le script se bloque
    ; GUIDelete(); est OK aussi
EndFunc   ;==>Example

Func Report($sMsg)
    GUICtrlSetData($g_idLblMsg, $sMsg)
EndFunc   ;==>Report