procedure TForm1.RichEdit1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var vPoint: TPoint; begin if Button <> mbRight then Exit; vPoint := Point(X, Y); X := SendMessage(RichEdit1.Handle, EM_CHARFROMPOS,0, Integer(@vPoint)) and $0000FFFF;// 得到鼠标点击字符位置 if (X >= RichEdit1.SelStart) and (X <= RichEdit1.SelStart + RichEdit1.SelLength) then ShowMessage(RichEdit1.SelText); end;