UDF > GUI > GuiRichEdit >


_GUICtrlRichEdit_GetCharWordBreakInfo

Obtient la position inter-caractères avant le mot précédent

#include <GuiRichEdit.au3>
_GUICtrlRichEdit_GetCharWordBreakInfo ( $hWnd, $iCP )

Paramètres

$hWnd Handle du contrôle
$iCP La position entre-caractère à gauche du caractère qui vous intéresse

Valeur de retour

Succès: Retourne une chaîne constituée de valeurs séparées par des virgules:
    valeur 1 - indicateur(s) de coupure de mot:
        c - la ligne peut être coupée après ce caractère
        d - le caractère est un délimiteur de fin de mot. Les lignes peuvent être coupées après ces délimiteurs
        w - le caractère est un espace blanc. (des espaces blancs ne sont pas inclus dans la longueur de la ligne.)
    valeur 2 - classe de caractère: un nombre
Échec: Retourne "" et définit @error <> 0.
@error: 101 - $hWnd n'est pas une handle
102 - $ICP n'est pas un nombre

Remarques

Les lignes peuvent être coupées à des délimiteurs ou entre les caractères de classes différentes.

Les classes de caractères sont définies dans les procédures coupure de mot.
Les classes de procédure par défaut sont:
    0 = caractère alphanumérique,
    1 = autre caractère imprimable (sauf trait d'union),
    2 = espace,
    3 = tabulation,
    4 = trait d'union ou de fin de paragraphe.

En relation

_GUICtrlRichEdit_GetCharPosOfNextWord, _GUICtrlRichEdit_GetCharPosOfPreviousWord

Voir aussi

Consultez EM_FINDWORDBREAK dans la librairie MSDN.

Exemple

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

Global $g_idLblMsg

Example()

Func Example()
    Local $hGui, $iMsg, $idBtnNext, $hRichEdit, $iCp = -1, $s
    $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)

    $s = Chr(9)
    For $i = 32 To 126
        $s &= Chr($i)
    Next
    _GUICtrlRichEdit_AppendText($hRichEdit, $s & @CRLF)
    _GUICtrlRichEdit_AppendText($hRichEdit, "AutoIt v3 est un langage de script freeware semblable à BASIC conçu pour " _
             & "l'automatisation Windows GUI et le scripting en général.")
    _GUICtrlRichEdit_AppendText($hRichEdit, @CRLF & "Un autre paragraphe")

    Do
        $iMsg = GUIGetMsg()
        If $iMsg = $idBtnNext Then
            $iCp += 1
            _GUICtrlRichEdit_GotoCharPos($hRichEdit, $iCp)
            GUICtrlSetData($g_idLblMsg, _GUICtrlRichEdit_GetCharWordBreakInfo($hRichEdit, $iCp))
        EndIf
    Until $iMsg = $GUI_EVENT_CLOSE

    _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

Func GetWord($hWnd, $iCp, $bForward, $bStartOfWord, $bClass = False)
    Local $iRet, $wParam
    If $bClass Then
        If $bForward Then
            $wParam = $WB_MOVEWORDRIGHT
        Else
            $wParam = $WB_MOVEWORDLEFT
        EndIf
    Else
        If $bForward Then
            If $bStartOfWord Then
                $wParam = $WB_RIGHT
            Else
                $wParam = $WB_LEFT
            EndIf
        Else
            If $bStartOfWord Then
                $wParam = $WB_RIGHTBREAK
            Else
                $wParam = $wb_LEFTBREAK
            EndIf
        EndIf
    EndIf
    $iRet = _SendMessage($hWnd, $EM_FINDWORDBREAK, $wParam, $iCp)
    ConsoleWrite('@@ Debug('& @ScriptLineNumber & ') : $wParam = '& $wParam & @CRLF & '>Code d'erreur: '& @error & @CRLF) ; ### Console de débogage
    Return $iRet
EndFunc   ;==>GetWord