函数参考


_GUICtrlRichEdit_SetCharAttributes

打开或关闭选定文本,(或者没有选择时,则取插入点的文本) 的属性

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

参数

$hWnd 控件句柄
$sStatesAndEffects 三个字符的字符串组: + (or -) 为状态, 另两个字符为属性单词的缩写
   第一个: + 为打开, - 为关闭
   第二和第三个字符:
      bo - 粗体
      di - 禁用 - 显示字符的阴影 [nd]
      em - 凸起 [nd]
      hi - 隐藏, 即不显示
      im - 印记 [nd]
      it - 斜体
      li - 鼠标在该属性的文本上时,发送 EN_LINK 消息
      ou - 摘要 [nd]
      pr - 试图修改时,发送 EN_PROTECT 消息
      re - 标记为经过修订的 [nd]
      sh - 阴影 [nd]
      sm - 小体大写字母 [nd]
      st - 删除的
      sb - 注脚 [nd]
      sp - 上标 [nd]
      un - 下划线
$fWord [可选参数] True
   如果文本被选中,则所选文本全部应用属性
   如果没有选的文本:
      如果插入点在一个单词中, 或在其结尾处, 对该单词应用属性
      如果不是, 对插入点处插入的文本应用属性
 False (Default)
   如果文本被选中,属性应用到选定的文本
   如果不是, 对插入点处插入的文本应用属性

返回值

成功: 返回 True
失败: 返回 False,设置@error
@error: 101 - $hWnd 参数值不是句柄
103 - $fWord 必须是 True 或 False
1021 - $sStatesAndAtts(此参数名与参数表中不同) 长度不是 3 的倍数
1022 - 字符组第一个字符不是 + 或 -. 字符在 @extended
1023 - 属性缩写无效. 它在 @extended

注意/说明

一些属性不显示;它们已在上面的描述中以 [nd] 标记.

相关

_GUICtrlRichEdit_GetCharAttributes

详情参考

在MSDN中搜索


示例/演示


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

Global $lblMsg, $hRichEdit

Main()

Func Main()
    Local $hGui, $iMsg, $btnNext, $iStep = 0
    $hGui = GUICreate("Example (" & StringTrimRight(@ScriptName, 4) & ")", 320, 350, -1, -1)
    $hRichEdit = _GUICtrlRichEdit_Create($hGui, "This is a test.", 10, 10, 300, 220, _
            BitOR($ES_MULTILINE, $WS_VSCROLL, $ES_AUTOVSCROLL))
    $lblMsg = GUICtrlCreateLabel("", 10, 235, 300, 60)
    $btnNext = GUICtrlCreateButton("Next", 270, 310, 40, 30)
    GUISetState()

    _GUICtrlRichEdit_SetText($hRichEdit, "Paragraph 1 ")
    While True
        $iMsg = GUIGetMsg()
        Select
            Case $iMsg = $GUI_EVENT_CLOSE
                _GUICtrlRichEdit_Destroy($hRichEdit) ; 除非脚本崩溃才需要
;~              GUIDelete()     ; 同样行
                Exit
            Case $iMsg = $btnNext
                $iStep += 1
                Switch $iStep
                    Case 1
                        _GUICtrlRichEdit_SetSel($hRichEdit, 0, 2)
                        _GUICtrlRichEdit_SetCharAttributes($hRichEdit, "+un")
                        Report("1. Two characters underlined")
                    Case 2
                        _GUICtrlRichEdit_SetSel($hRichEdit, 1, 5)
                        _GUICtrlRichEdit_SetCharAttributes($hRichEdit, "+bo")
                        Report("2. Some characters bolded")
                    Case 3
                        ; 把所有的文本流保存到桌面,这样您可以在 Word 中查看设置.
                        _GUICtrlRichEdit_Deselect($hRichEdit)
                        _GUICtrlRichEdit_StreamToFile($hRichEdit, @DesktopDir & "\gcre.rtf")
                        GUICtrlSetState($btnNext, $GUI_DISABLE)
                EndSwitch
        EndSelect
    WEnd
EndFunc   ;==>Main

Func Report($sMsg)
    $sMsg = $sMsg & @CR & @CR & _GUICtrlRichEdit_GetCharAttributes($hRichEdit)
    GUICtrlSetData($lblMsg, $sMsg)
    ControlFocus($hRichEdit, "", "")
EndFunc   ;==>Report