急!!拖拽一段文本时,如果获得插入点???(200分)

  • 主题发起人 主题发起人 nofault
  • 开始时间 开始时间
N

nofault

Unregistered / Unconfirmed
GUEST, unregistred user!
在RichEdit中。就是能够在抬起鼠标时,知道当前插入文本在正割文本中的位置,我原来以为SelStart可以记录,不过这个时候的SelStart的值是不改变的。
 
dx能回答吗?
 
是不是等价于要获取光标所在的位置?
 
用RichEdit1.CaretPos.X找到光标所在的列;<br>用RichEdit1.CaretPos.Y找到光标所在的行。
 
哦,是这样,我是想得到鼠标抬起后的SelStart,后来发现拖拽时抬起鼠标时,MouseUp事件不相应,那我如何得到SelStart啊!<br>现在和题目有些不一样乐。
 
我在另一个里面也问乐,现在关键是鼠标抬起时不激发mouseup事件,那如何得到?
 
RichEdit1.CaretPos.X - RichEdit1.SelLength得到鼠标抬起时,光标所在的列;<br>用RichEdit1.CaretPos.Y找到鼠标抬起时,光标所在的行。
 
再试试这个:<br>&nbsp; &nbsp; Pos := RichEdit1.SelStart - RichEdit1.CaretPos.Y * 2;<br>这次应该是符合你的要求了吧。
 
你在MouseMove里判断Mouse的状态不就行了么!
 
问题好像Ok了。<br>我问这个问题的时候其实有一个错误,我原来以为拖拽文本后它的Selstart没有改变,其实是改变了,<br>只是这个时候没有相应mouseup事件(我试的时候是用label的caption的)。<br>现在我觉得在onChange事件里做操作就可以,如果onchange事件触发时,如果Sellength不为零,则应该就是拖拽鼠标的情况。<br>不知道大家有更好的方法吗?<br>在mousemove事件中,如果选择范围不为零,鼠标为按下状态(不知道这个怎么判断呢)时,好像也可以判断为是拖拽状态。<br>:)
 
你的最终目的是什么呢?
 
在mouseup事件或在mousedown事件中均可取得的SelStart的值。
 
直接用这句话就可以得到了呀:<br>&nbsp; &nbsp; Pos := RichEdit1.SelStart - RichEdit1.CaretPos.Y * 2;<br>这也是当前插入文本在整个文本中的位置(也是SelStart的真正位置所在)。
 
其实我得问题得关键是在哪个事件理添加代码。<br>我是在Change事件里判断Sellength得到得。<br>还是谢谢几位。
 
其实我得问题得关键是在哪个事件理添加代码。<br>我是在Change事件里判断Sellength得到得。<br>还是谢谢几位。
 
后退
顶部