UDF > GUI > GuiRichEdit >


_GUICtrlRichEdit_SetCharAttributes

Active/désactive un attribut pour le texte sélectionné ou, à défaut de sélection, pour le texte inséré au point d'insertion

#include <GuiRichEdit.au3>
_GUICtrlRichEdit_SetCharAttributes ( $hWnd, $sStatesAndEffects [, $bWord = False] )

Paramètres

$hWnd Handle du contrôle
$sStatesAndEffects Une chaîne constituée de groupes de 3 caractères : + (ou -) pour l'état, et une abréviation de deux lettres pour l'attribut
Premier caractère : + pour On, - pour Off
Deuxième et troisième caractères: l'un des couples suivants:
    bo - (bold) gras
    di - (disable) affiche les caractères avec une ombre [nd]
    em - (emboss) [nd]
    hi - (hide)caché, c'est à dire ne s'affichent pas
    im - (imprint) empreinte [nd]
    it - (italcize) italique
    li - envoie des messages EN_LINK lorsque la souris est sur le texte avec cet attribut
    ou - (outline) aperçu [nd]
    pr - envoie EN_PROTECT lorsque l'utilisateur tente de modifier
    re - (revised) marqué comme révisé [nd]
    sh - (shadow) ombré [nd]
    sm - (smal) petites majuscules [nd]
    st - (stricke) rayé
    sb - (subscript) indice [nd]
    sp - (superscript) exposant [nd]
    un - (underline) souligné
$bWord [optionnel] True
    Si le texte est sélectionné, applique l'attribut à des mots entiers dans le texte sélectionné
    Dans le cas contraire :
    Si le point d'insertion est dans un mot, ou à la fin d'un mot, applique l'attribut au mot
    Sinon, applique l'attribut au texte inséré au point d'insertion
False (par défaut)
    Si le texte est sélectionné, applique l'attribut au texte sélectionné
    Sinon, applique l'attribut de texte inséré au point d'insertion

Valeur de retour

Succès: Retourne True.
Échec: Retourne False et définit @error <> 0.
@error: 101 - $hWnd n'est pas un handle
103 - $bWord doit être True ou False
1021 - La longueur de $sStatesAndAtts n'est pas multiple de 3
1022 - Le premier caractère du groupe n'est pas + ou -. Le caractère est dans @extended
1023 - Une abréviation pour un attribut est invalide. Il est dans @extended

Remarque

Certains attributs ne s'affichent pas; ils sont marqués ci-dessus par [nd] (not display).

En relation

_GUICtrlRichEdit_GetCharAttributes

Voir aussi

Consultez EM_SETCHARFORMAT 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)

    _GUICtrlRichEdit_SetText($g_hRichEdit, "Paragraphe 1 ")

    $iMsg = GUIGetMsg()
    While $iMsg <> $GUI_EVENT_CLOSE
        If $iMsg = $idBtnNext Then
            $iStep += 1
            Switch $iStep
                Case 1
                    _GUICtrlRichEdit_SetSel($g_hRichEdit, 0, 2)
                    _GUICtrlRichEdit_SetCharAttributes($g_hRichEdit, "+un")
                    Report("1. Two characters underlined")
                Case 2
                    _GUICtrlRichEdit_SetSel($g_hRichEdit, 1, 5)
                    _GUICtrlRichEdit_SetCharAttributes($g_hRichEdit, "+bo")
                    Report("2. Some characters bolded")
                Case 3
                    ; Sauvegarde le texte sur le bureau de sorte que vous puissiez regarder les paramètres dans Word
                    _GUICtrlRichEdit_Deselect($g_hRichEdit)
                    _GUICtrlRichEdit_StreamToFile($g_hRichEdit, @DesktopDir & "\gcre.rtf")
                    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)
    $sMsg = $sMsg & @CRLF & @CRLF & _GUICtrlRichEdit_GetCharAttributes($g_hRichEdit)
    GUICtrlSetData($g_idLblMsg, $sMsg)
EndFunc   ;==>Report