[StructLayout(LayoutKind.Sequential)]
struct RECT
{
public int left;
public int top;
public int right;
public int bottom;
public RECT(int left, int top, int right, int bottom)
{
this.left = left;
this.top = top;
this.right = right;
this.bottom = bottom;
}
// Handy method for converting to a System.Drawing.Rectangle
public Rectangle Rectangle
{
get { return new Rectangle(this.left, this.top, this.right - this.left, this.bottom - this.top); }
}
}
<System.Runtime.InteropServices.StructLayout(Runtime.InteropServices.LayoutKind.Sequential)> _
Public Structure Rect
Public Left As Integer
Public Top As Integer
Public Right As Integer
Public Bottom As Integer
Public Overrides Function ToString() As String
ToString = String.Format("({0},{1})-({2},{3})", Left, Top, Right, Bottom)
End Function
'Conversion to rectangle
Public ReadOnly Property Rectangle() As Rectangle
Get
Return New Rectangle(Left, Top, Right - Left, Bottom - Top)
End Get
End Property
End Structure
This can be used when a PInvoke signature requires a "Win32 rectangle," otherwise you should be using System.Drawing.Rectangle.