jed*_*der 9 delphi richedit textselection
在TRichEdit控件的每一行的左侧,有一个不可见的空间,光标变为右上箭头,当您单击那里时,整个行被选中.当TRichEdit的文本对齐方式为中心或右侧时,很容易看到它.我相信这个空间被称为选择栏.
TMemo控件中不存在这样的条.
我的问题:
如何删除此选择栏,以便光标行为与中的相同TMemo?
我正在使用Delphi 7,没有TRichEdit属性来控制这种行为.
ECO_SELECTIONBAR您可以对EM_SETOPTIONS消息使用一个值,但它只添加或删除选择栏的一小部分(仅当您要将选择栏添加到TRichEdit具有左对齐的选区时才有用).
尝试使用从 RichEdit 中SetWindowLong()删除窗口样式,例如:ES_SELECTIONBAR
dwStyle := GetWindowLong(RichEdit1.Handle, GWL_STYLE);
SetWindowLong(RichEdit1.Handle, GWL_STYLE, dwStyle and not ES_SELECTIONBAR);
Run Code Online (Sandbox Code Playgroud)
或者,从 派生一个新组件TRichEdit,或使用拦截器类来重写虚拟CreateParams()方法以删除样式:
type
TMyRichEdit = class(TRichEdit)
protected
procedure CreateParams(var Params: TCreateParams); override;
end;
Procedure TMyRichEdit.CreateParams(var Params: TCreateParams);
Begin
inherited;
Params.Style := Params.Style and not ES_SELECTIONBAR;
End;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
703 次 |
| 最近记录: |