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 |
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.
_GUICtrlRichEdit_GetCharAttributes
Search EM_SETCHARFORMAT in MSDN Library.
#include <GUIConstantsEx.au3>
#include <GuiRichEdit.au3>
#include <WindowsConstants.au3>
Global $g_idLblMsg, $g_hRichEdit
Example()
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)
GUISetState(@SW_SHOW)
_GUICtrlRichEdit_SetText($g_hRichEdit, "Paragraph 1 ")
Local $iMsg, $iStep = 0
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