/// <summary> /// スクロール位置が先頭かの判定 /// </summary> /// <param name="handle"></param> /// <param name="kind"></param> /// <returns></returns> public static bool IsScrollBarFirst(IntPtr handle, ScrollBarKind kind) { int iMinimum = 0; int iMaximum = 0; if (!GetScrollRange(handle, kind, out iMinimum, out iMaximum)) { return(false); } int iPostion = GetScrollPos(handle, kind); if (iPostion > iMinimum) { return(false); } return(true); }
/// <summary> /// スクロール位置が末尾かの判定 /// </summary> /// <param name="handle"></param> /// <param name="kind"></param> /// <returns></returns> public static bool IsScrollBarEnd(IntPtr handle, ScrollBarKind kind, int height) { int iMinimum = 0; int iMaximum = 0; if (!GetScrollRange(handle, kind, out iMinimum, out iMaximum)) { return(false); } int iPostion = GetScrollPos(handle, kind); // 無理やり感あふれる調整方法 if (iPostion + height + DefaultValues.SCROLL_SUB < iMaximum) { return(false); } return(true); }
private static extern bool GetScrollRange( System.IntPtr handle, ScrollBarKind kind, out int iMinimum, out int lMaximum );
private static extern int GetScrollPos( System.IntPtr handle, ScrollBarKind kind );