150 lines
3.0 KiB
C#
150 lines
3.0 KiB
C#
using System.Runtime.InteropServices;
|
|
|
|
namespace Sunny.UI.Win32
|
|
{
|
|
#pragma warning disable CS1591 // 缺少对公共可见类型或成员的 XML 注释
|
|
public struct RECT
|
|
{
|
|
public int Left;
|
|
public int Top;
|
|
public int Right;
|
|
public int Bottom;
|
|
|
|
public RECT(int aLeft, int aTop, int aRight, int aBottom)
|
|
{
|
|
Left = aLeft;
|
|
Top = aTop;
|
|
Right = aRight;
|
|
Bottom = aBottom;
|
|
}
|
|
|
|
public RECT(RECT aRect)
|
|
{
|
|
this.Left = aRect.Left;
|
|
this.Top = aRect.Top;
|
|
this.Right = aRect.Right;
|
|
this.Bottom = aRect.Bottom;
|
|
}
|
|
|
|
public POINT TopLeft()
|
|
{
|
|
return new POINT(Left, Top);
|
|
}
|
|
|
|
public POINT BottomRight()
|
|
{
|
|
return new POINT(Right, Bottom);
|
|
}
|
|
|
|
public void SetWidth(int value)
|
|
{
|
|
Right = Left + value;
|
|
}
|
|
|
|
public int Width
|
|
{
|
|
get { return Right - Left; }
|
|
set { SetWidth(value); }
|
|
}
|
|
|
|
public void SetHeight(int value)
|
|
{
|
|
Bottom = Top + value;
|
|
}
|
|
|
|
public int Height
|
|
{
|
|
get { return Bottom - Top; }
|
|
set { SetHeight(value); }
|
|
}
|
|
|
|
public void Offset(int x, int y)
|
|
{
|
|
Left += x;
|
|
Top += y;
|
|
Right += x;
|
|
Bottom += y;
|
|
}
|
|
|
|
public void Inflate(int x, int y)
|
|
{
|
|
Left -= x;
|
|
Right += x;
|
|
Top -= y;
|
|
Bottom += y;
|
|
}
|
|
|
|
public void SetEmpty()
|
|
{
|
|
Left = 0;
|
|
Top = 0;
|
|
Right = 0;
|
|
Bottom = 0;
|
|
}
|
|
|
|
public void ReSet(RECT rect)
|
|
{
|
|
Left = rect.Left;
|
|
Top = rect.Top;
|
|
Right = rect.Right;
|
|
Bottom = rect.Bottom;
|
|
}
|
|
|
|
public void ReSetBounds(int x, int y, int w, int h)
|
|
{
|
|
Left = x;
|
|
Top = y;
|
|
Right = x + w;
|
|
Bottom = y + h;
|
|
}
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public struct POINT
|
|
{
|
|
public int X;
|
|
public int Y;
|
|
|
|
public POINT(int ax, int ay)
|
|
{
|
|
X = ax;
|
|
Y = ay;
|
|
}
|
|
|
|
public void Offset(int x, int y)
|
|
{
|
|
X += x;
|
|
Y += y;
|
|
}
|
|
}
|
|
|
|
public struct SIZE
|
|
{
|
|
public int cx;
|
|
public int cy;
|
|
|
|
public SIZE(int x, int y)
|
|
{
|
|
cx = x;
|
|
cy = y;
|
|
}
|
|
}
|
|
public struct FILETIME
|
|
{
|
|
public int dwLowDateTime;
|
|
public int dwHighDateTime;
|
|
}
|
|
public struct SYSTEMTIME
|
|
{
|
|
public short wYear;
|
|
public short wMonth;
|
|
public short wDayOfWeek;
|
|
public short wDay;
|
|
public short wHour;
|
|
public short wMinute;
|
|
public short wSecond;
|
|
public short wMilliseconds;
|
|
}
|
|
|
|
#pragma warning restore CS1591 // 缺少对公共可见类型或成员的 XML 注释
|
|
} |