123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245 |
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Text;
- using System.Windows.Forms;
- using System.Drawing.Drawing2D;
- namespace US.Browser.IE
- {
- /// <summary>
- /// 绘图层
- /// </summary>
- public partial class skinm : Form
- {
- private skinform _um; //显示层
- public skinm(skinform um, Point xy)
- {
- InitializeComponent();
- //设置值
- _um = um; TopMost = um.TopMost; um.BringToFront(); Location = xy; Icon = um.Icon; ShowIcon = um.ShowIcon; Width = um.Width + 10; Height = um.Height + 10; Text = um.Text;
- }
- public void SetBits()
- {
- //绘制绘图层背景
- //Bitmap bitmap = new Bitmap(_um.Width + 10, _um.Height + 10);
- //Rectangle _BacklightLTRB = new Rectangle(20, 20, 20, 20);//窗体光泽重绘边界
- //Graphics g = Graphics.FromImage(bitmap);
- //g.SmoothingMode = SmoothingMode.HighQuality; //高质量
- //g.PixelOffsetMode = PixelOffsetMode.HighQuality; //高像素偏移质量
- //ImageDrawRect.DrawRect(g, Properties.Resources.main_light_bkg_top123, ClientRectangle, Rectangle.FromLTRB(_BacklightLTRB.X, _BacklightLTRB.Y, _BacklightLTRB.Width, _BacklightLTRB.Height), 1, 1);
- //if (!Bitmap.IsCanonicalPixelFormat(bitmap.PixelFormat) || !Bitmap.IsAlphaPixelFormat(bitmap.PixelFormat))
- // throw new ApplicationException("图片必须是32位带Alhpa通道的图片。");
- //IntPtr oldBits = IntPtr.Zero;
- //IntPtr screenDC = Win32.GetDC(IntPtr.Zero);
- //IntPtr hBitmap = IntPtr.Zero;
- //IntPtr memDc = Win32.CreateCompatibleDC(screenDC);
- //try
- //{
- // Win32.Point topLoc = new Win32.Point(Left, Top);
- // Win32.Size bitMapSize = new Win32.Size(Width, Height);
- // Win32.BLENDFUNCTION blendFunc = new Win32.BLENDFUNCTION();
- // Win32.Point srcLoc = new Win32.Point(0, 0);
- // hBitmap = bitmap.GetHbitmap(Color.FromArgb(0));
- // oldBits = Win32.SelectObject(memDc, hBitmap);
- // blendFunc.BlendOp = Win32.AC_SRC_OVER;
- // blendFunc.SourceConstantAlpha = Byte.Parse("255");
- // blendFunc.AlphaFormat = Win32.AC_SRC_ALPHA;
- // blendFunc.BlendFlags = 0;
- // Win32.UpdateLayeredWindow(Handle, screenDC, ref topLoc, ref bitMapSize, memDc, ref srcLoc, 0, ref blendFunc, Win32.ULW_ALPHA);
- //}
- //finally
- //{
- // if (hBitmap != IntPtr.Zero)
- // {
- // Win32.SelectObject(memDc, oldBits);
- // Win32.DeleteObject(hBitmap);
- // }
- // Win32.ReleaseDC(IntPtr.Zero, screenDC);
- // Win32.DeleteDC(memDc);
- //}
- }
- }
- //public partial class ImageDrawRect
- //{
- // public static ContentAlignment anyRight = ContentAlignment.BottomRight | (ContentAlignment.MiddleRight | ContentAlignment.TopRight);
- // public static ContentAlignment anyTop = ContentAlignment.TopRight | (ContentAlignment.TopCenter | ContentAlignment.TopLeft);
- // public static ContentAlignment anyBottom = ContentAlignment.BottomRight | (ContentAlignment.BottomCenter | ContentAlignment.BottomLeft);
- // public static ContentAlignment anyCenter = ContentAlignment.BottomCenter | (ContentAlignment.MiddleCenter | ContentAlignment.TopCenter);
- // public static ContentAlignment anyMiddle = ContentAlignment.MiddleRight | (ContentAlignment.MiddleCenter | ContentAlignment.MiddleLeft);
- // /// <summary>
- // /// 绘图对像
- // /// </summary>
- // /// <param name="g">绘图对像</param>
- // /// <param name="img">图片</param>
- // /// <param name="r">绘置的图片大小、坐标</param>
- // /// <param name="lr">绘置的图片边界</param>
- // /// <param name="index">当前状态</param>
- // /// <param name="Totalindex">状态总数</param>
- // public static void DrawRect(Graphics g, Bitmap img, Rectangle r, Rectangle lr, int index, int Totalindex)
- // {
- // if (img == null) return;
- // Rectangle r1, r2;
- // int x = (index - 1) * img.Width / Totalindex;
- // int y = 0;
- // int x1 = r.Left;
- // int y1 = r.Top;
- // if (r.Height > img.Height && r.Width <= img.Width / Totalindex)
- // {
- // r1 = new Rectangle(x, y, img.Width / Totalindex, lr.Top);
- // r2 = new Rectangle(x1, y1, r.Width, lr.Top);
- // g.DrawImage(img, r2, r1, GraphicsUnit.Pixel);
- // r1 = new Rectangle(x, y + lr.Top, img.Width / Totalindex, img.Height - lr.Top - lr.Bottom);
- // r2 = new Rectangle(x1, y1 + lr.Top, r.Width, r.Height - lr.Top - lr.Bottom);
- // if ((lr.Top + lr.Bottom) == 0) r1.Height = r1.Height - 1;
- // g.DrawImage(img, r2, r1, GraphicsUnit.Pixel);
- // r1 = new Rectangle(x, y + img.Height - lr.Bottom, img.Width / Totalindex, lr.Bottom);
- // r2 = new Rectangle(x1, y1 + r.Height - lr.Bottom, r.Width, lr.Bottom);
- // g.DrawImage(img, r2, r1, GraphicsUnit.Pixel);
- // }
- // else
- // if (r.Height <= img.Height && r.Width > img.Width / Totalindex)
- // {
- // r1 = new Rectangle(x, y, lr.Left, img.Height);
- // r2 = new Rectangle(x1, y1, lr.Left, r.Height);
- // g.DrawImage(img, r2, r1, GraphicsUnit.Pixel);
- // r1 = new Rectangle(x + lr.Left, y, img.Width / Totalindex - lr.Left - lr.Right, img.Height);
- // r2 = new Rectangle(x1 + lr.Left, y1, r.Width - lr.Left - lr.Right, r.Height);
- // g.DrawImage(img, r2, r1, GraphicsUnit.Pixel);
- // r1 = new Rectangle(x + img.Width / Totalindex - lr.Right, y, lr.Right, img.Height);
- // r2 = new Rectangle(x1 + r.Width - lr.Right, y1, lr.Right, r.Height);
- // g.DrawImage(img, r2, r1, GraphicsUnit.Pixel);
- // }
- // else
- // if (r.Height <= img.Height && r.Width <= img.Width / Totalindex)
- // {
- // r1 = new Rectangle((index - 1) * img.Width / Totalindex, 0, img.Width / Totalindex, img.Height - 1);
- // g.DrawImage(img, new Rectangle(x1, y1, r.Width, r.Height), r1, GraphicsUnit.Pixel);
- // }
- // else if (r.Height > img.Height && r.Width > img.Width / Totalindex)
- // {
- // //top-left
- // r1 = new Rectangle(x, y, lr.Left, lr.Top);
- // r2 = new Rectangle(x1, y1, lr.Left, lr.Top);
- // g.DrawImage(img, r2, r1, GraphicsUnit.Pixel);
- // //top-bottom
- // r1 = new Rectangle(x, y + img.Height - lr.Bottom, lr.Left, lr.Bottom);
- // r2 = new Rectangle(x1, y1 + r.Height - lr.Bottom, lr.Left, lr.Bottom);
- // g.DrawImage(img, r2, r1, GraphicsUnit.Pixel);
- // //left
- // r1 = new Rectangle(x, y + lr.Top, lr.Left, img.Height - lr.Top - lr.Bottom);
- // r2 = new Rectangle(x1, y1 + lr.Top, lr.Left, r.Height - lr.Top - lr.Bottom);
- // g.DrawImage(img, r2, r1, GraphicsUnit.Pixel);
- // //top
- // r1 = new Rectangle(x + lr.Left, y,
- // img.Width / Totalindex - lr.Left - lr.Right, lr.Top);
- // r2 = new Rectangle(x1 + lr.Left, y1,
- // r.Width - lr.Left - lr.Right, lr.Top);
- // g.DrawImage(img, r2, r1, GraphicsUnit.Pixel);
- // //right-top
- // r1 = new Rectangle(x + img.Width / Totalindex - lr.Right, y, lr.Right, lr.Top);
- // r2 = new Rectangle(x1 + r.Width - lr.Right, y1, lr.Right, lr.Top);
- // g.DrawImage(img, r2, r1, GraphicsUnit.Pixel);
- // //Right
- // r1 = new Rectangle(x + img.Width / Totalindex - lr.Right, y + lr.Top,
- // lr.Right, img.Height - lr.Top - lr.Bottom);
- // r2 = new Rectangle(x1 + r.Width - lr.Right, y1 + lr.Top,
- // lr.Right, r.Height - lr.Top - lr.Bottom);
- // g.DrawImage(img, r2, r1, GraphicsUnit.Pixel);
- // //right-bottom
- // r1 = new Rectangle(x + img.Width / Totalindex - lr.Right, y + img.Height - lr.Bottom,
- // lr.Right, lr.Bottom);
- // r2 = new Rectangle(x1 + r.Width - lr.Right, y1 + r.Height - lr.Bottom,
- // lr.Right, lr.Bottom);
- // g.DrawImage(img, r2, r1, GraphicsUnit.Pixel);
- // //bottom
- // r1 = new Rectangle(x + lr.Left, y + img.Height - lr.Bottom,
- // img.Width / Totalindex - lr.Left - lr.Right, lr.Bottom);
- // r2 = new Rectangle(x1 + lr.Left, y1 + r.Height - lr.Bottom,
- // r.Width - lr.Left - lr.Right, lr.Bottom);
- // g.DrawImage(img, r2, r1, GraphicsUnit.Pixel);
- // //Center
- // r1 = new Rectangle(x + lr.Left, y + lr.Top,
- // img.Width / Totalindex - lr.Left - lr.Right, img.Height - lr.Top - lr.Bottom);
- // r2 = new Rectangle(x1 + lr.Left, y1 + lr.Top,
- // r.Width - lr.Left - lr.Right, r.Height - lr.Top - lr.Bottom);
- // g.DrawImage(img, r2, r1, GraphicsUnit.Pixel);
- // }
- // }
- // ///// <summary>
- // ///// 绘图对像
- // ///// </summary>
- // ///// <param name="g"> 绘图对像</param>
- // ///// <param name="obj">图片对像</param>
- // ///// <param name="r">绘置的图片大小、坐标</param>
- // ///// <param name="index">当前状态</param>
- // ///// <param name="Totalindex">状态总数</param>
- // //public static void DrawRect(Graphics g, Bitmap img, Rectangle r, int index, int Totalindex)
- // //{
- // // if (img == null) return;
- // // int width = img.Width / Totalindex;
- // // int height = img.Height;
- // // Rectangle r1, r2;
- // // int x = (index - 1) * width;
- // // int y = 0;
- // // int x1 = r.Left;
- // // int y1 = r.Top;
- // // r1 = new Rectangle(x, y, width, height);
- // // r2 = new Rectangle(x1, y1, r.Width, r.Height);
- // // g.DrawImage(img, r2, r1, GraphicsUnit.Pixel);
- // //}
- // //public static Rectangle HAlignWithin(Size alignThis, Rectangle withinThis, ContentAlignment align)
- // //{
- // // if ((align & anyRight) != (ContentAlignment)0)
- // // {
- // // withinThis.X += (withinThis.Width - alignThis.Width);
- // // }
- // // else if ((align & anyCenter) != ((ContentAlignment)0))
- // // {
- // // withinThis.X += ((withinThis.Width - alignThis.Width + 1) / 2);
- // // }
- // // withinThis.Width = alignThis.Width;
- // // return withinThis;
- // //}
- // //public static Rectangle VAlignWithin(Size alignThis, Rectangle withinThis, ContentAlignment align)
- // //{
- // // if ((align & anyBottom) != ((ContentAlignment)0))
- // // {
- // // withinThis.Y += (withinThis.Height - alignThis.Height);
- // // }
- // // else if ((align & anyMiddle) != ((ContentAlignment)0))
- // // {
- // // withinThis.Y += ((withinThis.Height - alignThis.Height + 1) / 2);
- // // }
- // // withinThis.Height = alignThis.Height;
- // // return withinThis;
- // //}
- //}
- }
|