Ejemplo n.º 1
0
            public static int GetScrollBarPos(IntPtr hWnd, ScrollBarTypes BarType)
            {
                SCROLLINFO Info = new SCROLLINFO();

                Info.fMask  = ScrollBarInfoFlags.SIF_POS;
                Info.cbSize = (uint)Marshal.SizeOf(Info);
                GetScrollInfo(hWnd, BarType, ref Info);
                return(Info.nPos);
            }
Ejemplo n.º 2
0
        /// <summary>
        ///     Extension method to create a WindowScroller
        /// </summary>
        /// <param name="interopWindow">IInteropWindow</param>
        /// <param name="scrollBarType">ScrollBarTypes</param>
        /// <param name="forceUpdate">true to force a retry, even if the previous check failed</param>
        /// <returns>WindowScroller or null</returns>
        public static WindowScroller GetWindowScroller(this IInteropWindow interopWindow, ScrollBarTypes scrollBarType = ScrollBarTypes.Vertical, bool forceUpdate = false)
        {
            if (!forceUpdate && interopWindow.CanScroll.HasValue && !interopWindow.CanScroll.Value)
            {
                return(null);
            }
            var initialScrollInfo = ScrollInfo.Create(ScrollInfoMask.All);

            if (User32Api.GetScrollInfo(interopWindow.Handle, scrollBarType, ref initialScrollInfo) && initialScrollInfo.Minimum != initialScrollInfo.Maximum)
            {
                var windowScroller = new WindowScroller
                {
                    ScrollingWindow   = interopWindow,
                    ScrollBarWindow   = interopWindow,
                    ScrollBarType     = scrollBarType,
                    InitialScrollInfo = initialScrollInfo,
                    WheelDelta        = (int)(120 * (initialScrollInfo.PageSize / WindowScroller.ScrollWheelLinesFromRegistry))
                };
                interopWindow.CanScroll = true;
                return(windowScroller);
            }
            if (User32Api.GetScrollInfo(interopWindow.Handle, ScrollBarTypes.Control, ref initialScrollInfo) && initialScrollInfo.Minimum != initialScrollInfo.Maximum)
            {
                var windowScroller = new WindowScroller
                {
                    ScrollingWindow   = interopWindow,
                    ScrollBarWindow   = interopWindow,
                    ScrollBarType     = ScrollBarTypes.Control,
                    InitialScrollInfo = initialScrollInfo,
                    WheelDelta        = (int)(120 * (initialScrollInfo.PageSize / WindowScroller.ScrollWheelLinesFromRegistry))
                };
                interopWindow.CanScroll = true;
                return(windowScroller);
            }
            interopWindow.CanScroll = false;
            return(null);
        }
Ejemplo n.º 3
0
 public static extern bool GetScrollInfo(IntPtr hWnd, ScrollBarTypes fnBar, ref SCROLLINFO lpsi);
Ejemplo n.º 4
0
 public static int GetScrollBarPos(IntPtr hWnd, ScrollBarTypes BarType)
 {
     SCROLLINFO Info = new SCROLLINFO();
     Info.fMask = ScrollBarInfoFlags.SIF_POS;
     Info.cbSize = (uint)Marshal.SizeOf(Info);
     GetScrollInfo(hWnd, BarType, ref Info);
     return Info.nPos;
 }
Ejemplo n.º 5
0
 public static extern bool ShowScrollBar(IntPtr hwnd, ScrollBarTypes scrollBar, [MarshalAs(UnmanagedType.Bool)] bool show);
Ejemplo n.º 6
0
 public static extern bool SetScrollInfo(IntPtr hwnd, ScrollBarTypes scrollBar, ref ScrollInfo scrollInfo, bool redraw);
Ejemplo n.º 7
0
 public static extern bool GetScrollInfo(IntPtr hwnd, ScrollBarTypes scrollBar, ref ScrollInfo scrollInfo);
Ejemplo n.º 8
0
 public extern static bool GetScrollInfo(IntPtr hWnd, ScrollBarTypes fnBar, ref SCROLLINFO lpsi);
Ejemplo n.º 9
0
 private int GetScrollBarPos(IntPtr hWnd, ScrollBarTypes BarType)
 {
     SCROLLINFO INFO = new SCROLLINFO();
     INFO.fMask = ScrollBarInfoFlags.SIF_POS;
     INFO.cbSize = Marshal.SizeOf(INFO);
     GetScrollInfo(hWnd, BarType, ref INFO);
     return INFO.nPos;
 }