3

有没有办法以像素更改插入符号的位置?

每次移动鼠标时,我都想移动护理位置。

像:

Onmousemove: MoveCaretPos(X, Y);

4

1 回答 1

7

不,您不能将插入符号的位置设置在特定点,而是必须将插入符号设置在字符位置。为此,您必须使用该EM_CHARFROMPOS消息来检索最接近指定点的字符,然后将返回的值设置为SelStart属性。

检查这个样本

procedure TForm1.RichEdit1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
var
 APoint  : TPoint;
 Index   : Integer;
begin
   APoint := Point(X, Y);
   Index :=  SendMessage(TRichEdit(Sender).Handle,EM_CHARFROMPOS, 0, Integer(@APoint));
   if Index<0 then Exit;
   TRichEdit(Sender).SelStart:=Index;
end;
于 2011-06-01T07:14:42.710 回答