UDF > GUI > GuiRichEdit >


_GUICtrlRichEdit_ScrollLineOrPage

Fait défiler le texte vers le bas ou vers le haut d'une ligne ou d'une page

#include <GuiRichEdit.au3>
_GUICtrlRichEdit_ScrollLineOrPage ( $hWnd, $sAction )

Paramètres

$hWnd Handle du contrôle
$sAction Une des opérations suivantes:
    "ld"- (line down) ligne vers le bas
    "lu" - (line up) ligne vers le haut
    "pd"- (page down) page vers le bas
    "pu" - (page up) page vers le haut

Valeur de retour

Succès: Retourne le nombre de lignes qui ont effectivement défilées (positif si vers le bas).
Échec: Retourne 0 et définit @error <> 0.
@error: 101 - $hWnd n'est pas un handle
1021 - $sAction ne contient pas deux caractères
1022 - Le premier caractère doit être l (line) ou p (page)
1023 - Le deuxième caractère doit être d (down) ou u (up)

Remarque

Cette fonction se comporte bien: elle ne fait pas défiler au-delà de la dernière ligne.

En relation

_GUICtrlRichEdit_ScrollLines, _GUICtrlRichEdit_ScrollToCaret

Voir aussi

Consultez EM_SCROLL dans la librairie MSDN.

Exemple

#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, "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($g_hRichEdit, "Line " & $i & @CRLF)
    Next
    _GUICtrlRichEdit_AppendText($g_hRichEdit, "Line 21")

    $iMsg = GUIGetMsg()
    While $iMsg <> $GUI_EVENT_CLOSE
        If $iMsg = $idBtnNext Then
            $iStep += 1
            Switch $iStep
                Case 1
                    DoIt("lu", "Défilement vers le haut d'une ligne")
                Case 2
                    DoIt("pu", "Défilement vers le haut d'une page")
                Case 3
                    DoIt("pd", "Défilement vers le bas d'une page")
                Case 4
                    DoIt("pd", "Tente de faire défiler une autre page")
                    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 DoIt($sAction, $sMsg)
    Local $iQlines
    $iQlines = _GUICtrlRichEdit_ScrollLineOrPage($g_hRichEdit, $sAction)
    GUICtrlSetData($g_idLblMsg, $sMsg & @CRLF & @CRLF & "Défilement actuel de " & @CRLF & $iQlines & " lines")
EndFunc   ;==>DoIt