dtooboss 发表于 2017-7-16 05:22:53

[已解决]富文本编辑框如何在添加文本后不显示光标和取得焦点?

本帖最后由 dtooboss 于 2017-7-19 05:36 编辑

用 _GUICtrlRichEdit_AppendText 追加文本后总是有个闪烁的光标
焦点也会自动切换到富文本编辑框。
如何能禁止焦点在富文本控件并且隐藏闪烁的光标?

富文本编辑框只是用来显示彩色字符~~

各种方法都试了,只能来求助,谢谢。



如图~~



kk_lee69 发表于 2017-7-17 12:06:30

回复 1# dtooboss

游標只有一個吧

上面有游標 應該是你的焦點 放在富本文 身上
把焦點移到 其他地方不就好了??

或者請提供範例程式吧

vuivui 发表于 2017-7-18 12:48:29

方法比较多,根据你的需求,在au3最简单的是选择文本隐藏选择显示:#include <GuiRichEdit.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

Local $hGui, $hRichEdit, $iMsg
$hGui = GUICreate("隐藏光标", 320, 350, -1, -1)
$hRichEdit = _GUICtrlRichEdit_Create($hGui, "有光标", 10, 10, 300, 220, _
                BitOR($ES_MULTILINE, $WS_VSCROLL, $ES_AUTOVSCROLL))
GUISetState()
Sleep(2000)
_GUICtrlRichEdit_AppendText($hRichEdit, @CR & "隐藏选择文本无光标1")
_GUICtrlRichEdit_HideSelection($hRichEdit, True)
_SendMessage($hRichEdit, $EM_SETSEL, 0, 1)
Sleep(2000)
_GUICtrlRichEdit_AppendText($hRichEdit, @CR & "隐藏选择文本无光标2")
_SendMessage($hRichEdit, $EM_SETSEL, 0, 1)

While True
        $iMsg = GUIGetMsg()
        Select
                Case $iMsg = $GUI_EVENT_CLOSE
                        _GUICtrlRichEdit_Destroy($hRichEdit)
                        Exit
        EndSelect
WEnd

vuivui 发表于 2017-7-18 12:53:53

隐藏选择文本无光标1
应为:
隐藏选择无光标1

懒得改了

dtooboss 发表于 2017-7-19 05:34:31

隐藏选择文本无光标1
应为:
隐藏选择无光标1

懒得改了
vuivui 发表于 2017-7-18 12:53 http://www.autoitx.com/images/common/back.gif


    谢谢呀~
我用
_GUICtrlRichEdit_Deselect($RichEdit2)
_WinAPI_DestroyCaret()
_WinAPI_HideCaret ($RichEdit2 )

解决了~~

vuivui 发表于 2017-7-19 11:37:05

建议用:_SendMessage($hRichEdit, $EM_SETSEL, 0, 1)
用DestroyCaret或HideCaret,切换窗口重新激活还会有光标。

dtooboss 发表于 2017-7-19 13:58:33

回复 6# vuivui

用 _SendMessage($hRichEdit, $EM_SETSEL, 0, 1) 滚动有问题~

vuivui 发表于 2017-7-19 15:06:25

嗯,这个要根据场合选择了。
页: [1]
查看完整版本: [已解决]富文本编辑框如何在添加文本后不显示光标和取得焦点?