试了一下,发现即使拉到最下面了,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;