获取 TRichEdit的滚动条位置(100分)

  • 主题发起人 主题发起人 fatBaby
  • 开始时间 开始时间
F

fatBaby

Unregistered / Unconfirmed
GUEST, unregistred user!
我需要知道当前的滚动条有没有拉到最下面,请教方法,
我用 GetScrollRange 和 GetScrollPos 得出的值有点不对,不知为什么
 
试了一下,发现即使拉到最下面了,TScrollInfo里的nPos还是不会等于nMax的。
用Ctrl-End或是拖动滚动条到不能再拖的方法得到的nPos等于nMax-nPage;
再用点滚动条的向下滚动按钮直到不能再往下的时候nPos也只是增加了1。
如果这个现象是普遍的,那么可以这样判断——

procedure TForm1.Button1Click(Sender: TObject);
var
SI: TScrollInfo;
begin
SI.cbSize := SizeOf(TScrollInfo);
SI.fMask := SIF_ALL;
GetScrollInfo(RichEdit1.Handle, SB_VERT, SI);
if SI.nPos + SI.nPage >= SI.nMax then ShowMessage('已经到底了!');
end;
 
我也遇到过类似的问题,好象应该考虑滑块的长度。
 
多人接受答案了。
 
后退
顶部