有没有办法以像素更改插入符号的位置?
每次移动鼠标时,我都想移动护理位置。
像:
Onmousemove: MoveCaretPos(X, Y);
不,您不能将插入符号的位置设置在特定点,而是必须将插入符号设置在字符位置。为此,您必须使用该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;