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);
 | 
						|
        //        }
 | 
						|
        //    }
 | 
						|
        //}
 | 
						|
    }
 | 
						|
}
 |