Function Reference


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] )


$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


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



See Also



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

Global $g_idLblMsg, $g_hRichEdit


Func Example()
        Local $hGui = GUICreate("RichEdit Get/Set CharAttributes", 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)
        Local $idBtnNext = GUICtrlCreateButton("Next", 270, 310, 40, 30)

        _GUICtrlRichEdit_SetText($g_hRichEdit, "Paragraph 1 ")
        Local $iMsg, $iStep = 0
        While True
                $iMsg = GUIGetMsg()
                        Case $iMsg = $GUI_EVENT_CLOSE
                                _GUICtrlRichEdit_Destroy($g_hRichEdit) ; needed unless script crashes
                                ; GUIDelete()   ; is OK too
                        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_StreamToFile($g_hRichEdit, @DesktopDir & "\gcre.rtf")
                                                GUICtrlSetState($idBtnNext, $GUI_DISABLE)
EndFunc   ;==>Example

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