Function Reference


_GUICtrlRichEdit_SetCharAttributes

Turns an attribute on or off for selected text or, if none selected, for text inserted at the insertion point

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

Parameters

$hWnd Handle to the control
$sStatesAndEffects a string consisting of three character groups: + (or -) for the state, and a two-letter abbreviation for the attribute
first character: + for on, - for off
second and third character: any of:
    bo - bold
    di - disable - displays characters with a shadow [nd]
    em - emboss [nd]
    hi - hide, i.e. don't display
    im - imprint [nd]
    it - italcize
    li - send EN_LINK messages when mouse is over text with this attribute
    ou - outline [nd]
    pr - send EN_PROTECT when user attempts to modify
    re - mark as revised [nd]
    sh - shadow [nd]
    sm - small capital letters [nd]
    st - strike out
    sb - subscript [nd]
    sp - superscript [nd]
    un - underline
$bWord [optional] True
    If text is selected, apply the attribute to whole words in the selected text
    If not:
    If the insertion point is in a word, or at the end of it, apply the attribute to the word
    If not, apply the attribute to text inserted at the insertion point
False (Default)
    If text is selected, apply the attribute to the selected text
    If not, apply the attribute to text inserted at the insertion point

Return Value

Success: True.
Failure: False and sets the @error flag to non-zero.
@error: 101 - $hWnd is not a handle
103 - $bWord must be True or False
1021 - length of $sStatesAndAtts is not multiple of 3
1022 - first character of group not + or -. The character is in @extended
1023 - An abbreviation for an attribute is invalid. It is in @extended

Remarks

Some attributes do not display; they are marked with [nd] above.

Related

_GUICtrlRichEdit_GetCharAttributes

See Also

Search EM_SETCHARFORMAT in MSDN Library.

Example

#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("Example (" & StringTrimRight(@ScriptName, StringLen(".exe")) & ")", 320, 350, -1, -1)
    $g_hRichEdit = _GUICtrlRichEdit_Create($hGui, "This is a test.", 10, 10, 300, 220, _
            BitOR($ES_MULTILINE, $WS_VSCROLL, $ES_AUTOVSCROLL))
    $g_idLblMsg = GUICtrlCreateLabel("", 10, 235, 300, 60)
    $idBtnNext = GUICtrlCreateButton("Next", 270, 310, 40, 30)
    GUISetState(@SW_SHOW)

    _GUICtrlRichEdit_SetText($g_hRichEdit, "Paragraph 1 ")
    While True
        $iMsg = GUIGetMsg()
        Select
            Case $iMsg = $GUI_EVENT_CLOSE
                _GUICtrlRichEdit_Destroy($g_hRichEdit) ; needed unless script crashes
                ; GUIDelete()   ; is OK too
                Exit
            Case $iMsg = $idBtnNext
                $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
                        ; Stream all text to the Desktop so you can look at settings in Word
                        _GUICtrlRichEdit_Deselect($g_hRichEdit)
                        _GUICtrlRichEdit_StreamToFile($g_hRichEdit, @DesktopDir & "\gcre.rtf")
                        GUICtrlSetState($idBtnNext, $GUI_DISABLE)
                EndSwitch
        EndSelect
    WEnd
EndFunc   ;==>Example

Func Report($sMsg)
    $sMsg = $sMsg & @CRLF & @CRLF & _GUICtrlRichEdit_GetCharAttributes($g_hRichEdit)
    GUICtrlSetData($g_idLblMsg, $sMsg)
EndFunc   ;==>Report