Example #1
0
        /// <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);
        }
Example #2
0
        /// <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);
            }
        }
Example #3
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);
        }
Example #4
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);
 }
Example #5
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);
        }