导航:  Windows Controls Procedures > Scroll Bar Control > Functions >

GetScrollInfo

上一页返回章节概述下一页

描述

 

这个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成员SIZEOFSCROLLINFO),并设置fMask成员指定要检索的滚动条参数.返回之前,函数将指定的参数复制到结构的适当成员.

 

The fMask member can be one or more of the following values.

 

SIF_PAGE

份滚动页面的SCROLLINFO结构nPage成员指出由发光多孔硅.

SIF_POS

复制滚动位置的SCROLLINFO结构nPos成员指出由发光多孔硅.

SIF_RANGE

复制滚动范围的nMinnMax成员的SCROLLINFO指向的结构lpsi.

SIF_TRACKPOS

将当前滚动框的位置跟踪的SCROLLINFO结构nTrackPos成员所指向的lpsi.

 

返回值

 

如果函数检索任何值,则返回值为非零值.

 

如果函数不检索任何值,则返回值为零.若要获取扩展错误信息,请调用GetLastError.

 

备注

 

这个GetScrollInfo函数使应用程序能够使用32位滚动位置.虽然指示滚动条位置的消息,WM_HSCROLLWM_VSCROLL,只提供16位的位置数据,功能SetScrollInfoGetScrollInfo提供32位滚动条位置数据.因此,应用程序可以调用GetScrollInfo虽然处理要么WM_HSCROLLWM_VSCROLL获取32位滚动条位置数据的消息.

 

获取滚动框的32位位置(拇指)在一个SB_THUMBTRACK请求代码中WM_HSCROLLWM_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