描述
这个GetScrollInfo函数检索滚动条的参数,包括最小和最大滚动位置、页面大小和滚动框(拇指)的位置.
FreeBASIC 语法
FUNCTION GetScrollInfo ( _ BYVAL hwnd AS HWND, _ BYVAL fnBar AS LONG, _ BYVAL lpsi AS LPSCROLLINFO _ ) AS WINBOOL |
参数
hwnd |
[in]处理滚动条控件或窗口的一个标准的滚动条,根据不同的fnBar参数值. |
fnBar |
[in]指定要检索的参数为滚动条的类型.此参数可以是下列值之一.
SB_CTL 检索滚动条控件的参数.hWnd参数必须是滚动条控件的句柄. SB_HORZ 检索窗口标准水平滚动条的参数. SB_VERT 检索窗口标准垂直滚动条的参数. |
lpsi |
[in, out]指向SCROLLINFO结构.在调用GetScrollInfo,设置cbSize成员SIZEOF(SCROLLINFO),并设置fMask成员指定要检索的滚动条参数.返回之前,函数将指定的参数复制到结构的适当成员.
The fMask member can be one or more of the following values.
SIF_PAGE 份滚动页面的SCROLLINFO结构nPage成员指出由发光多孔硅. SIF_POS 复制滚动位置的SCROLLINFO结构nPos成员指出由发光多孔硅. SIF_RANGE 复制滚动范围的nMin和nMax成员的SCROLLINFO指向的结构lpsi. SIF_TRACKPOS 将当前滚动框的位置跟踪的SCROLLINFO结构nTrackPos成员所指向的lpsi. |
返回值
如果函数检索任何值,则返回值为非零值.
如果函数不检索任何值,则返回值为零.若要获取扩展错误信息,请调用GetLastError.
备注
这个GetScrollInfo函数使应用程序能够使用32位滚动位置.虽然指示滚动条位置的消息,WM_HSCROLL和WM_VSCROLL,只提供16位的位置数据,功能SetScrollInfo和GetScrollInfo提供32位滚动条位置数据.因此,应用程序可以调用GetScrollInfo虽然处理要么WM_HSCROLL或WM_VSCROLL获取32位滚动条位置数据的消息.
获取滚动框的32位位置(拇指)在一个SB_THUMBTRACK请求代码中WM_HSCROLL或WM_VSCROLL短信,电话GetScrollInfo随着fMask成员SIF_TRACKPOS价值SCROLLINFO结构.函数返回滚动框中的跟踪位置nTrackPos的成员SCROLLINFO结构.这使您能够得到滚动框的位置,因为用户移动它.下面的示例代码说明了该技术.
C++
SCROLLINFO si;
case WM_HSCROLL:
switch(LOWORD(wparam)) {
case SB_THUMBTRACK:
// Initialize SCROLLINFO structure
ZeroMemory(&si, sizeof(si));
si.cbSize = sizeof(si);
si.fMask = SIF_TRACKPOS;
// Call GetScrollInfo to get current tracking
// position in si.nTrackPos
if (!GetScrollInfo(hwnd, SB_HORZ, &si) )
return 1; // GetScrollInfo failed
break;
.
.
.
}
FreeBASIC
DIM si AS SCROLLINFO
CASE WM_HSCROLL
SELECT CASE(LOWORD(wParam)
CASE SB_THUMBTRACK
' Initialize SCROLLINFO structure
si.cbSize = SIZEOF(si)
si.fMask = SIF_TRACKPOS
' Call GetScrollInfo to get current tracking
' position in si.nTrackPos
IF GetScrollInfo(hwnd, SB_HORZ, si) <> 0 THEN
FUNCTION = 1 ' GetScrollInfo failed
EXIT FUNCTION
END IF
.
.
.
END SELECT
如果fnBar参数是SB_CTL和窗口由hWnd参数指定不是系统滚动条控件,系统将SBM_GETSCROLLINFO消息窗口获取滚动条信息.这允许GetScrollInfo在模仿滚动条的自定义控件上操作.如果窗口不处理SBM_GETSCROLLINFO的消息,GetScrollInfo功能失效.
引用文件
WinUser.bi


