C# GetWindowRect 获取窗体在屏幕中的位置信息
利用Win332的API:
bool GetWindowRect(IntPtr hWnd, ref RECT_INFO lpRect);
获取指定窗体或控件,在屏幕内地位置信息。
using System; using System.Runtime.InteropServices; namespace StudySln { public class Win32API { /// <summary> /// 获取指定窗口(或控件)在屏幕中的位置信息 (左边界,上边界,右边界,下边界) /// </summary> /// <param name="hWnd"></param> /// <param name="lpRect"></param> /// <returns></returns> [DllImport("user32.dll")] [return: MarshalAs(UnmanagedType.Bool)] public extern static bool GetWindowRect(IntPtr hWnd, ref RECT_INFO lpRect); } /// <summary> /// 矩形范围信息(结构体) /// </summary> [StructLayout(LayoutKind.Sequential)] public struct RECT_INFO { /// <summary> /// 当前矩形范围的最左边界 /// </summary> public int Left; /// <summary> /// 当前矩形的最上边界 /// </summary> public int Top; /// <summary> /// 当前矩形的最右边界 /// </summary> public int Right; /// <summary> /// 当前矩形的最下边界 /// </summary> public int Bottom; } }
hWnd:窗口句柄,也可以传递一个控件的Handle值。
lpRect:指向一个RECT结构的指针,该结构接收窗口的左上角和右下角的屏幕坐标。