@msdn=http://search.microsoft.com/search/results.aspx?qu=$$$ @pinvoke=http://pinvoke.net/$$$.htm Summary: The GetScrollBarInfo API !!!!C# Signature: [DllImport( "user32.dll", SetLastError=true, EntryPoint="GetScrollBarInfo")] private static extern int GetScrollBarInfo(IntPtr hWnd, uint idObject, ref SCROLLBARINFO psbi); !!!!User-Defined Types: [StructLayout(LayoutKind.Sequential)] public struct SCROLLBARINFO { public int cbSize; public Rectangle rcScrollBar; public int dxyLineButton; public int xyThumbTop; public int xyThumbBottom; public int reserved; [MarshalAs(UnmanagedType.ByValArray, SizeConst=6)] public int[] rgstate; } !!!!Notes: This didn't work for me with the Rectangle type for SCROLLBARINFO.rcScrollBar. To rectify this I altered this declaration to type RECT using the following standard definition. public struct RECT { public int left; public int top; public int right; public int bottom; } This then worked for me! !!!!Tips & Tricks: for idObject, use one of these values (see the MSDN link at the bottom for their usage): private const uint OBJID_HSCROLL = 0xFFFFFFFA; private const uint OBJID_VSCROLL = 0xFFFFFFFB; private const uint OBJID_CLIENT = 0xFFFFFFFC; !!!!Sample Code: SCROLLBARINFO psbi = new SCROLLBARINFO(); psbi.cbSize = Marshal.SizeOf(psbi); int nResult = GetScrollBarInfo(this.Handle, OBJID_CLIENT, ref psbi); // "this" is a scrollbar if (nResult == 0) { int nLatError = GetLastError(); // in kernel32.dll } probably Marshal.GetLastWin32Error() is better here !!!!Alternative Managed API: if you have a reference to a '''System.Windows.Forms.ScrollBar''', use it's properties. otherwise, SystemInformation.HorizontalScrollbar* and SystemInformation.VerticalScrollbar* can give you some of the data. Documentation: GetScrollBarInfo@msdn on MSDN http://msdn2.microsoft.com/en-us/library/ms651286.aspx
Edit user32.getscrollb...
You do not have permission to change this page. If you feel this is in error, please send feedback with the contact link on the main page.