116 lines
3.9 KiB
C#
116 lines
3.9 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
using System.Runtime.InteropServices;
|
|
using System.Drawing;
|
|
|
|
namespace DevComponents.DotNetBar.Layout.Design
|
|
{
|
|
internal static class WinApi
|
|
{
|
|
[DllImport("gdi32.dll", CharSet = CharSet.Auto)]
|
|
public static extern IntPtr SelectObject(IntPtr hDC, IntPtr hObject);
|
|
[DllImport("gdi32")]
|
|
public static extern bool DeleteObject(IntPtr hObject);
|
|
|
|
[DllImport("gdi32.dll", CharSet = CharSet.Auto)]
|
|
public static extern bool GetTextMetrics(HandleRef hdc, TEXTMETRIC tm);
|
|
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
|
|
public class TEXTMETRIC
|
|
{
|
|
public int tmHeight;
|
|
public int tmAscent;
|
|
public int tmDescent;
|
|
public int tmInternalLeading;
|
|
public int tmExternalLeading;
|
|
public int tmAveCharWidth;
|
|
public int tmMaxCharWidth;
|
|
public int tmWeight;
|
|
public int tmOverhang;
|
|
public int tmDigitizedAspectX;
|
|
public int tmDigitizedAspectY;
|
|
public char tmFirstChar;
|
|
public char tmLastChar;
|
|
public char tmDefaultChar;
|
|
public char tmBreakChar;
|
|
public byte tmItalic;
|
|
public byte tmUnderlined;
|
|
public byte tmStruckOut;
|
|
public byte tmPitchAndFamily;
|
|
public byte tmCharSet;
|
|
}
|
|
|
|
[DllImport("user32")]
|
|
public static extern int SendMessage(IntPtr hWnd, int Msg, IntPtr wParam, IntPtr lParam);
|
|
[DllImport("user32")]
|
|
public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
|
|
public const int WM_SETREDRAW = 0x000B;
|
|
|
|
public const int WM_LBUTTONDOWN = 0x0201;
|
|
public const int WM_LBUTTONUP = 0x0202;
|
|
public const int WM_RBUTTONDOWN = 0x0204;
|
|
public const int WM_RBUTTONUP = 0x0205;
|
|
public const int WM_MOUSEMOVE = 0x0200;
|
|
public const int WM_MOUSELEAVE = 0x02A3;
|
|
public const int WM_HSCROLL = 0x0114;
|
|
public const int WM_VSCROLL = 0x0115;
|
|
public const int WM_LBUTTONDBLCLK = 0x0203;
|
|
|
|
public static int LOWORD(int n)
|
|
{
|
|
return (short)(n & 0xffff);
|
|
}
|
|
public static int HIWORD(int n)
|
|
{
|
|
return (int)((n >> 0x10) & 0xffff);
|
|
}
|
|
public static int LOWORD(IntPtr n)
|
|
{
|
|
return LOWORD((int)((long)n));
|
|
}
|
|
public static int HIWORD(IntPtr n)
|
|
{
|
|
return unchecked((short)((uint)n >> 16));
|
|
}
|
|
|
|
//[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true, ExactSpelling = true)]
|
|
//public static extern int ScrollWindowEx(HandleRef hWnd, int nXAmount, int nYAmount, ref RECT rectScrollRegion, ref RECT rectClip, IntPtr hrgnUpdate, ref RECT prcUpdate, int flags);
|
|
//[StructLayout(LayoutKind.Sequential)]
|
|
//public 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;
|
|
// }
|
|
|
|
// public RECT(Rectangle r)
|
|
// {
|
|
// this.left = r.Left;
|
|
// this.top = r.Top;
|
|
// this.right = r.Right;
|
|
// this.bottom = r.Bottom;
|
|
// }
|
|
|
|
// public static RECT FromXYWH(int x, int y, int width, int height)
|
|
// {
|
|
// return new RECT(x, y, x + width, y + height);
|
|
// }
|
|
|
|
// public Size Size
|
|
// {
|
|
// get
|
|
// {
|
|
// return new Size(this.right - this.left, this.bottom - this.top);
|
|
// }
|
|
// }
|
|
//}
|
|
}
|
|
}
|