关于richedit的问题 ( 积分: 100 )

  • 主题发起人 主题发起人 wzwcn
  • 开始时间 开始时间
W

wzwcn

Unregistered / Unconfirmed
GUEST, unregistred user!
1。如何取得光标的位置(坐标)?
我想在光标的位置显示一个弹出试菜单,我在RichEdit.CaretPos.x和RichEdit.CaretPos.y的位置显示菜单时,菜单的位置总是不在光标的地方。

2。如何在光标的位置插入字符(串)?
不管光标在什么地方,我点一个按扭就会在光标的位置插入相应字符(串),请问如何实现?

请高手赐教,先谢了!
 
1。如何取得光标的位置(坐标)?
我想在光标的位置显示一个弹出试菜单,我在RichEdit.CaretPos.x和RichEdit.CaretPos.y的位置显示菜单时,菜单的位置总是不在光标的地方。

2。如何在光标的位置插入字符(串)?
不管光标在什么地方,我点一个按扭就会在光标的位置插入相应字符(串),请问如何实现?

请高手赐教,先谢了!
 
1 要把x,y转换为相对屏幕的坐标
 
怎么转换,请赐教
 
RichEdit1.ClientToScreen(TPoint(RichEdit.CaretPos.x,RichEdit.CaretPos.y))
 
2.麻烦最少的办法用POSTMESSAGE来发送串
如要在RichEdit1中插入Edit1中的文本
for i:=1 to Length(Edit1.Text) do
PostMessage(RichEdit1.Handle, WM_CHAR, Integer(Edit1.Text), 0);
 
ClientToScreen()是转换函数
getcursorpos是取得当前坐标
如果是自己的程序可以在鼠标事件里加mouseevent或者sendmessage,如果是别人的程序就只能先取得鼠标所在的窗体控件句柄然后sendmessage
 
多人接受答案了。
 
后退
顶部