示例#1
0
 /// <summary>
 /// Finds the maximum single monitor rectangle.
 /// </summary>
 /// <param name="windowRect">The window rect.</param>
 /// <param name="screenSubRect">The screen sub rect.</param>
 /// <param name="monitorRect">The monitor rect.</param>
 public static void FindMaximumSingleMonitorRectangle(RECT windowRect, out RECT screenSubRect, out RECT monitorRect)
 {
     List<RECT> rects = new List<RECT>();
     NativeMethodsPack.NativeMethods.EnumDisplayMonitors(IntPtr.Zero, IntPtr.Zero, delegate(IntPtr hMonitor, IntPtr hdcMonitor, ref RECT rect, IntPtr lpData)
     {
         MONITORINFO monitorInfo = new MONITORINFO
         {
             cbSize = (uint)Marshal.SizeOf(typeof(MONITORINFO))
         };
         NativeMethodsPack.NativeMethods.GetMonitorInfo(hMonitor, ref monitorInfo);
         rects.Add(monitorInfo.rcWork);
         return true;
     }, IntPtr.Zero);
     screenSubRect = new RECT
     {
         Left = 0,
         Right = 0,
         Top = 0,
         Bottom = 0
     };
     monitorRect = new RECT
     {
         Left = 0,
         Right = 0,
         Top = 0,
         Bottom = 0
     };
     long num = 0L;
     foreach (RECT rect in rects)
     {
         RECT lprcDst;
         RECT lprcSrc1 = rect;
         NativeMethodsPack.NativeMethods.IntersectRect(out lprcDst, ref lprcSrc1, ref windowRect);
         long num2 = lprcDst.Width * lprcDst.Height;
         if (num2 > num)
         {
             screenSubRect = lprcDst;
             monitorRect = rect;
             num = num2;
         }
     }
 }
示例#2
0
 public static extern bool GetWindowRect(IntPtr hwnd, out RECT lpRect);
示例#3
0
 public static extern bool IntersectRect(out RECT lprcDst, ref RECT lprcSrc1, ref RECT lprcSrc2);
示例#4
0
 public static extern bool FillRect(IntPtr hDC, ref RECT rect, IntPtr hbrush);
示例#5
0
 public static extern bool AdjustWindowRectEx(ref RECT lpRect, uint dwStyle,
   bool bMenu, uint dwExStyle);
示例#6
0
 public static extern bool PtInRect(ref RECT lprc, POINT pt);
示例#7
0
 public static extern Boolean AdjustWindowRect(ref RECT lpRect, UInt32 dwStyle, bool bMenu);
示例#8
0
 public static extern bool GetWindowRect(HandleRef hwnd, out RECT lpRect);
示例#9
0
 public static extern bool GetClientRect(IntPtr hWnd, out RECT lpRect);
示例#10
0
 public static extern IntPtr CreateRectRgnIndirect(ref RECT lprc);