[ Home | Contents | Search | Next | Previous | Up ]
Date: 11/30/99
Time: 12:13:43 AM
Q. I am using TScroller for a window that has > 32,767 pixels,
vertically. Anyone successful at this?
A. In my program I scroll windows by delta not by
pixel, user don't have patient to scroll 32000 pixels but if you wish here part from Win32
help :
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 obtain32-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;
. . .
}