SROLLBARINFO.rcScrollbar指的是滚动条本身或滚动条的尺寸
本文关键字:滚动条 rcScrollbar SROLLBARINFO | 更新日期: 2023-09-27 18:09:59
SCROLLBARINFO Struct
cbSize DWORD
rcScrollBar RECT
dxyLineButton DWORD
xyThumbTop DWORD
xyThumbBottom DWORD
reserved DWORD
rgstate DWORD 6 DUP
SCROLLBARINFO ends
当GetScrollBarInfo()返回这个结构,rcScrollBar是滚动条或滚动拇指的尺寸?
更新:
GetScrollInfo:
中的另一个结构typedef struct tagSCROLLINFO {
UINT cbSize;
UINT fMask;
int nMin;
int nMax;
UINT nPage;
int nPos;
int nTrackPos;
} SCROLLINFO, **LPCSCROLLINFO;
要检测滚动拇指是否在底部,为什么这个公式工作:
IsAtBottom = (si。nMax - si.nPos) <(sbi.rcScrollBar。bottom - sbi.rcScrollBar.top)
nMax, nPos和滚动条矩形之间的关系是什么?
它是滚动条本身的坐标(作为RECT,即上,左,右,下)(参见msdn)。为了得到维度,你需要执行减法(代码片段是c++,但你可以转换为c#):
RECT coords = info.rcScollBar;
LONG width = coords.right - coords.left;
LONG height = coords.bottom - coords.top;
您还需要确保您在正确的坐标系(屏幕或客户端)中工作。我试着找出你从GetScrollBarInfo
得到的坐标系统但是还没找到。我猜它是在客户端坐标,但我不能确认这一点。
这是滚动条的尺寸而不是拇指的尺寸