GetScrollInfo The GetScrollInfo function retrieves the parameters of a scroll bar, including the minimum and maximum scrolling positions, the page size, and the position of the scroll box (thumb).BOOL GetScrollInfo( HWND hwnd, // handle to window with scroll bar int fnBar, // scroll bar flag LPSCROLLINFO lpsi // pointer to structure for scroll parameters );
Parameters hwnd Handle to a scroll bar control or a window with a standard scroll bar, depending on the value of the fnBar parameter. fnBar Specifies the type of scroll bar for which to retrieve parameters. This parameter can be one of the following values: Value Meaning SB_CTL Retrieves the parameters for a scroll bar control. The hwnd parameter must be the handle to the scroll bar control. SB_HORZ Retrieves the parameters for the given window's standard horizontal scroll bar. SB_VERT Retrieves the parameters for the given window's standard vertical scroll bar. lpsi Pointer to a SCROLLINFO structure. Before calling GetScrollInfo, set the cbSize member of the structure to sizeof(SCROLLINFO), and set the fMask member to specify the scroll bar parameters to retrieve. Before returning, the function copies the specified parameters to the appropriate members of the structure. The fMask member can be a combination of the following values: Value Meaning SIF_PAGE Copies the scroll page to the nPage member of the SCROLLINFO structure pointed to by lpsi. SIF_POS Copies the scroll position to the nPos member of the SCROLLINFO structure pointed to by lpsi. SIF_RANGE Copies the scroll range to the nMin and nMax members of the SCROLLINFO structure pointed to by lpsi. SIF_TRACKPOS Copies the current scroll box tracking position to the nTrackPos member of the SCROLLINFO structure pointed to by lpsi. Return Values If the function retrieved any values, the return value is nonzero.If the function does not retrieve any values, the return value is zero. To get extended error information, callGetLastError.Res The GetScrollInfo function enables applications to use 32-bit scroll positions. Although the messages that indicate scroll-bar position, WM_HSCROLL and WM_VSCROLL, provide only 16 bits of position data, the functions SetScrollInfo and GetScrollInfo provide 32 bits of scroll-bar position data. Thus, an application can call GetScrollInfo while processing either the WM_HSCROLL or WM_VSCROLL messages to obtain 32-bit scroll-bar position data. To get the 32-bit position of the scroll box (thumb) during a SB_THUMBTRACK notification in a WM_HSCROLL or WM_VSCROLL message, call GetScrollInfo with the SIF_TRACKPOS value in the fMask member of the SCROLLINFO structure. The function returns the tracking position of the scroll box in the nTrackPos member of the SCROLLINFO structure. This allows you to get the position of the scroll box as the user moves it. The following sample code illustrates the technique.SCROLLINFO si; case WM_HSCROLL: switch(LOWORD(wparam)) { case SB_THUMBTRACK: // Initialize SCROLLINFO structure
QuickInfo Windows NT: Requires version 3.51 or later. Windows: Requires Windows 95 or later. Windows CE: Requires version 1.0 or later. Header: Declared in winuser.h. Import Library: Use user32.lib.
SCROLLINFO The SCROLLINFO structure contains scroll bar parameters to be set by the SetScrollInfo function (or SBM_SETSCROLLINFO message), or retrieved by the GetScrollInfo function (or SBM_GETSCROLLINFO message). typedef struct tagSCROLLINFO { // si UINT cbSize; UINT fMask; int nMin; int nMax; UINT nPage; int nPos; int nTrackPos; } SCROLLINFO; typedef SCROLLINFO FAR *LPSCROLLINFO;
Members cbSize Specifies the size, in bytes, of this structure. fMask Specifies the scroll bar parameters to set or retrieve. This member can be a combination of the following values: Value Meaning SIF_ALL Combination of SIF_PAGE, SIF_POS, SIF_RANGE, and SIF_TRACKPOS. SIF_DISABLENOSCROLL This value is used only when setting a scroll bar's parameters. If the scroll bar's new parameters make the scroll bar unnecessary, disable the scroll bar instead of removing it. SIF_PAGE The nPage member contains the page size for a proportional scroll bar. SIF_POS The nPos member contains the scroll box position, which is not updated while the user drags the scroll box. SIF_RANGE The nMin and nMax members contain the minimum and maximum values for the scrolling range. SIF_TRACKPOS The nTrackPos member contains the current position of the scroll box while the user is dragging it. nMin Specifies the minimum scrolling position. nMax Specifies the maximum scrolling position. nPage Specifies the page size. A scroll bar uses this value to determine the appropriate size of the proportional scroll box. nPos Specifies the position of the scroll box. nTrackPos Specifies the immediate position of a scroll box that the user is dragging. An application can retrieve this value while processing the SB_THUMBTRACK notification message. An application cannot set the immediate scroll position; the SetScrollInfo function ignores this member. QuickInfo Windows NT: Requires version 3.51 or later. Windows: Requires Windows 95 or later. Windows CE: Requires version 1.0 or later. Header: Declared in winuser.h.
The GetScrollInfo function retrieves the parameters of a scroll bar, including the minimum and maximum scrolling positions, the page size, and the position of the scroll box (thumb).BOOL GetScrollInfo(
HWND hwnd, // handle to window with scroll bar
int fnBar, // scroll bar flag
LPSCROLLINFO lpsi // pointer to structure for scroll parameters
);
Parameters
hwnd
Handle to a scroll bar control or a window with a standard scroll bar, depending on the value of the fnBar parameter.
fnBar
Specifies the type of scroll bar for which to retrieve parameters. This parameter can be one of the following values: Value Meaning
SB_CTL Retrieves the parameters for a scroll bar control. The hwnd parameter must be the handle to the scroll bar control.
SB_HORZ Retrieves the parameters for the given window's standard horizontal scroll bar.
SB_VERT Retrieves the parameters for the given window's standard vertical scroll bar.
lpsi
Pointer to a SCROLLINFO structure. Before calling GetScrollInfo, set the cbSize member of the structure to sizeof(SCROLLINFO), and set the fMask member to specify the scroll bar parameters to retrieve. Before returning, the function copies the specified parameters to the appropriate members of the structure.
The fMask member can be a combination of the following values: Value Meaning
SIF_PAGE Copies the scroll page to the nPage member of the SCROLLINFO structure pointed to by lpsi.
SIF_POS Copies the scroll position to the nPos member of the SCROLLINFO structure pointed to by lpsi.
SIF_RANGE Copies the scroll range to the nMin and nMax members of the SCROLLINFO structure pointed to by lpsi.
SIF_TRACKPOS Copies the current scroll box tracking position to the nTrackPos member of the SCROLLINFO structure pointed to by lpsi. Return Values
If the function retrieved any values, the return value is nonzero.If the function does not retrieve any values, the return value is zero. To get extended error information, callGetLastError.Res
The GetScrollInfo function enables applications to use 32-bit scroll positions. Although the messages that indicate scroll-bar position, WM_HSCROLL and WM_VSCROLL, provide only 16 bits of position data, the functions SetScrollInfo and GetScrollInfo provide 32 bits of scroll-bar position data. Thus, an application can call GetScrollInfo while processing either the WM_HSCROLL or WM_VSCROLL messages to obtain 32-bit scroll-bar position data. To get the 32-bit position of the scroll box (thumb) during a SB_THUMBTRACK notification in a WM_HSCROLL or WM_VSCROLL message, call GetScrollInfo with the SIF_TRACKPOS value in the fMask member of the SCROLLINFO structure. The function returns the tracking position of the scroll box in the nTrackPos member of the SCROLLINFO structure. This allows you to get the position of the scroll box as the user moves it. The following sample code illustrates the technique.SCROLLINFO si;
case WM_HSCROLL:
switch(LOWORD(wparam)) {
case SB_THUMBTRACK:
// Initialize SCROLLINFO structure
ZeroMemory(&si, sizeof(SCROLLINFO));
si.cbSize = sizeof(SCROLLINFO);
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;
.
.
.
}
QuickInfo
Windows NT: Requires version 3.51 or later.
Windows: Requires Windows 95 or later.
Windows CE: Requires version 1.0 or later.
Header: Declared in winuser.h.
Import Library: Use user32.lib.
The SCROLLINFO structure contains scroll bar parameters to be set by the SetScrollInfo function (or SBM_SETSCROLLINFO message), or retrieved by the GetScrollInfo function (or SBM_GETSCROLLINFO message). typedef struct tagSCROLLINFO { // si
UINT cbSize;
UINT fMask;
int nMin;
int nMax;
UINT nPage;
int nPos;
int nTrackPos;
} SCROLLINFO;
typedef SCROLLINFO FAR *LPSCROLLINFO;
Members
cbSize
Specifies the size, in bytes, of this structure.
fMask
Specifies the scroll bar parameters to set or retrieve. This member can be a combination of the following values: Value Meaning
SIF_ALL Combination of SIF_PAGE, SIF_POS, SIF_RANGE, and SIF_TRACKPOS.
SIF_DISABLENOSCROLL This value is used only when setting a scroll bar's parameters. If the scroll bar's new parameters make the scroll bar unnecessary, disable the scroll bar instead of removing it.
SIF_PAGE The nPage member contains the page size for a proportional scroll bar.
SIF_POS The nPos member contains the scroll box position, which is not updated while the user drags the scroll box.
SIF_RANGE The nMin and nMax members contain the minimum and maximum values for the scrolling range.
SIF_TRACKPOS The nTrackPos member contains the current position of the scroll box while the user is dragging it.
nMin
Specifies the minimum scrolling position.
nMax
Specifies the maximum scrolling position.
nPage
Specifies the page size. A scroll bar uses this value to determine the appropriate size of the proportional scroll box.
nPos
Specifies the position of the scroll box.
nTrackPos
Specifies the immediate position of a scroll box that the user is dragging. An application can retrieve this value while processing the SB_THUMBTRACK notification message. An application cannot set the immediate scroll position; the SetScrollInfo function ignores this member.
QuickInfo
Windows NT: Requires version 3.51 or later.
Windows: Requires Windows 95 or later.
Windows CE: Requires version 1.0 or later.
Header: Declared in winuser.h.
http://www0.ccidnet.com/school/software/2003/05/09/134_8711.html然后用设定的滚动条的Value值和Form的高或者宽来得到被隐藏的Form的高或者宽的值
---------------------------这是不确定的
Windows让程序员在WM_HSCROLL、WM_VSCROLL消息中用代码设置滚动条的位置
你只能根据新旧滚动条位置的差来判断
滚动条SDK编程资料:
VS6的MSDN:
平台SDK
User Interface Services
Controls
Scroll Bars