private static extern bool GetScrollInfo(IntPtr hWnd, int fnBar, ref SCROLLINFO info);
/// <summary> /// Initializes a new instance of the MozItemEventArgs class with default settings /// </summary> public MozScrollEventArgs(ScrollEventType type, int newValue, SCROLLINFO info) { m_type = type; m_newValue = newValue; m_info = info; }
private static extern bool GetScrollInfo (IntPtr hWnd, int fnBar, ref SCROLLINFO info);
/// <summary> /// Intercept scroll messages to send notifications /// </summary> /// <param name="m">Message parameters</param> protected override void WndProc(ref Message m) { // Let the control process the message base.WndProc (ref m); // Was this a horizontal scroll message? if ( m.Msg == WM_HSCROLL ) { if ( HorizontalScroll != null ) { uint wParam = (uint)m.WParam.ToInt32(); SCROLLINFO si = new SCROLLINFO(); si.cbSize = Marshal.SizeOf(si); si.fMask = SIF_ALL; bool ret = GetScrollInfo(this.Handle,SB_HORZ,ref si); HorizontalScroll( this, new MozScrollEventArgs( GetEventType( wParam & 0xffff), (int)(wParam >> 16),si ) ); } } // or a vertical scroll message? else if ( m.Msg == WM_VSCROLL ) { if ( VerticalScroll != null ) { uint wParam = (uint)m.WParam.ToInt32(); SCROLLINFO si = new SCROLLINFO(); si.cbSize = Marshal.SizeOf(si); si.fMask = SIF_ALL; bool ret = GetScrollInfo(this.Handle,SB_VERT,ref si); VerticalScroll( this, new MozScrollEventArgs( GetEventType( wParam & 0xffff), (int)(wParam >> 16),si ) ); } } }
/// <summary> /// Initializes a new instance of the MozItemEventArgs class with default settings /// </summary> public MozScrollEventArgs(ScrollEventType type , int newValue, SCROLLINFO info) { m_type = type; m_newValue = newValue; m_info = info; }