SharpDisplay: Migrating to new robust client scheme.
3 using System.Runtime.InteropServices;
6 namespace Aga.Controls.Tree
8 internal static class NativeMethods
10 public const int DCX_WINDOW = 0x01;
11 public const int DCX_CACHE = 0x02;
12 public const int DCX_NORESETATTRS = 0x04;
13 public const int DCX_CLIPCHILDREN = 0x08;
14 public const int DCX_CLIPSIBLINGS = 0x10;
15 public const int DCX_PARENTCLIP = 0x20;
16 public const int DCX_EXCLUDERGN = 0x40;
17 public const int DCX_INTERSECTRGN = 0x80;
18 public const int DCX_EXCLUDEUPDATE = 0x100;
19 public const int DCX_INTERSECTUPDATE = 0x200;
20 public const int DCX_LOCKWINDOWUPDATE = 0x400;
21 public const int DCX_VALIDATE = 0x200000;
23 public const int WM_THEMECHANGED = 0x031A;
24 public const int WM_NCPAINT = 0x85;
25 public const int WM_NCCALCSIZE = 0x83;
27 public const int WS_BORDER = 0x800000;
28 public const int WS_EX_CLIENTEDGE = 0x200;
30 public const int WVR_HREDRAW = 0x100;
31 public const int WVR_VREDRAW = 0x200;
32 public const int WVR_REDRAW = (WVR_HREDRAW | WVR_VREDRAW);
34 [StructLayout(LayoutKind.Sequential)]
35 public struct NCCALCSIZE_PARAMS
37 public RECT rgrc0, rgrc1, rgrc2;
41 [StructLayout(LayoutKind.Sequential)]
49 public static RECT FromRectangle(Rectangle rectangle)
51 RECT result = new RECT();
52 result.Left = rectangle.Left;
53 result.Top = rectangle.Top;
54 result.Right = rectangle.Right;
55 result.Bottom = rectangle.Bottom;
59 public Rectangle ToRectangle()
61 return new Rectangle(Left, Top, Right - Left, Bottom - Top);
65 [DllImport("user32.dll", SetLastError = true)]
66 public static extern IntPtr GetDCEx(IntPtr hWnd, IntPtr hrgnClip, int flags);
68 [DllImport("user32.dll")]
69 public static extern int ReleaseDC(IntPtr hWnd, IntPtr hDC);
71 [DllImport("user32.dll")]
72 public static extern bool GetWindowRect(IntPtr hWnd, out RECT lpRect);