/// <summary> /// 设置控件的工作区的高度和宽度。 /// </summary> /// <param name="hWnd">控件句柄。</param> /// <param name="value">一个 System.Drawing.Size,表示控件的工作区的维数。</param> public static void SetClientSize(IntPtr hWnd, Size value) { NativeMethods.RECT lpRect = new NativeMethods.RECT(0, 0, value.Width, value.Height); int dwStyle = UnsafeNativeMethods.GetWindowLong(hWnd, NativeMethods.GWL_STYLE); int dwExStyle = UnsafeNativeMethods.GetWindowLong(hWnd, NativeMethods.GWL_EXSTYLE); UnsafeNativeMethods.AdjustWindowRectEx(ref lpRect, dwStyle, false, dwExStyle); SetSize(hWnd, lpRect.Size); }
/// <summary> /// 获取指定窗口包含的滚动条。 /// </summary> /// <param name="hWnd">窗口句柄。</param> /// <returns>返回值见 System.Windows.Forms.ScrollBars 定义</returns> public static int GetScrollBars(IntPtr hWnd) { int wndStyle = UnsafeNativeMethods.GetWindowLong(hWnd, NativeMethods.GWL_STYLE); bool hsVisible = (wndStyle & NativeMethods.WS_HSCROLL) != 0; bool vsVisible = (wndStyle & NativeMethods.WS_VSCROLL) != 0; if (hsVisible) { return(vsVisible ? 3 : 1); } else { return(vsVisible ? 2 : 0); } }
/// <summary> /// 获取一个值,该值指示是否将控件显示为顶级窗口。 /// </summary> /// <param name="hWnd">控件句柄。</param> /// <returns>如果为 true,则将控件显示为顶级窗口;否则,为 false。</returns> public static bool GetTopLevel(IntPtr hWnd) { int dwStyle = UnsafeNativeMethods.GetWindowLong(hWnd, NativeMethods.GWL_STYLE); return((dwStyle & NativeMethods.WS_CHILD) == 0); }
/// <summary> /// 获取控件是否TopMost(判断控件是否为“TopMost”类型的窗口,这种类型的窗口总是在其它窗口的前面) /// </summary> /// <param name="hWnd">要判断的窗口</param> public static bool IsTopMost(IntPtr hWnd) { return((UnsafeNativeMethods.GetWindowLong(hWnd, NativeMethods.GWL_EXSTYLE) & NativeMethods.WS_EX_TOPMOST) != 0); }
/// <summary> /// 获取指定窗口是否有左滚动条样式。 /// </summary> /// <param name="hWnd">窗口句柄。</param> /// <returns>窗口有左滚动条样式返回 true,否则返回 false。</returns> public static bool GetLeftScrollBar(IntPtr hWnd) { int wndExStyle = UnsafeNativeMethods.GetWindowLong(hWnd, NativeMethods.GWL_EXSTYLE); return((wndExStyle & NativeMethods.WS_EX_LEFTSCROLLBAR) != 0); }