using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using HANDLE = System.IntPtr;
using HWND = System.IntPtr;
namespace WuyinMuManager
{
/**//// <summary>
/// Form1 的摘要说明。
/// </summary>
public class WuyinMsnForm : System.Windows.Forms.Form
{
private System.ComponentModel.IContainer components=null;
Point location = new Point(0,0);
Point p= new Point(0,0);
Size size = new Size(600,400);
bool isMax = false;
private System.Windows.Forms.ContextMenu ControlMenu;
private System.Windows.Forms.MenuItem menuItem6;
private System.Windows.Forms.MenuItem menuRestore;
private System.Windows.Forms.MenuItem menuMove;
private System.Windows.Forms.MenuItem menuSize;
private System.Windows.Forms.MenuItem menuMin;
private System.Windows.Forms.MenuItem menuMax;
private System.Windows.Forms.MenuItem menuClose;
bool cursor=false;
Graphics g = null;
bool IsDiaLog = false;
public const int WM_NCPAINT = 0x85;
Color DeskTop = Color.FromArgb(122,150,223);
Color Caption = Color.FromArgb(216,228,248);
protected override void WndProc(ref Message m)
{
RectangleF rectf;
switch (m.Msg)
{
case WM_NCPAINT :
IntPtr hrgn = m.WParam;
if ( hrgn != (IntPtr)1 )
{
Region rgn = Region.FromHrgn(hrgn);
g = CreateGraphics();
rectf = rgn.GetBounds(g);
PaintNonClientArea(g, rectf);
}
else
{
g = CreateGraphics();
rectf = new RectangleF(0,-23, Width, 23);
PaintNonClientArea(g, rectf);
g.Dispose();
}
//base.WndProc(ref m);
break;
default :
base.WndProc (ref m);
break;
}
}
public bool isDialog
{
get
{
return IsDiaLog ;
}
set
{
IsDiaLog =value;
}
}
void PaintNonClientArea(Graphics g,RectangleF r)
{
//this.PainWindow(g);
}
public WuyinMsnForm()
{
//
// Windows 窗体设计器支持所必需的
//
InitializeComponent();
this.MinimumSize = new Size(160,20);
//int MyMenu = GetSystemMenu(this.Handle,0);
this.FormBorderStyle=FormBorderStyle.None;
//LoadMenu((IntPtr)MyMenu,"");
//MessageBox.Show(MyMenu.ToString());
//
// TODO: 在 InitializeComponent 调用后添加任何构造函数代码
//
}
/**//// <summary>
/// 清理所有正在使用的资源。
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if(components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
protected override void OnPaint(PaintEventArgs e)
{
//int handle = Win32.User.GetWindowDC(this.Handle);
g = this.CreateGraphics();
//g = Graphics.FromHdc(((IntPtr)handle));
this.PainWindow(g);
//Win32.RECT Rect = new Win32.RECT();
//Win32.User.GetWindowRect((IntPtr)handle,ref Rect);
//Win32.User.ReleaseDC(this.Handle,(IntPtr)handle);
}
public override string Text
{
get
{
return base.Text;
}
set
{
DrawText(this.CreateGraphics());
base.Text = value;
}
}
protected override void OnMouseMove(MouseEventArgs e)
{
//this.Form1_MouseMove(this,e);
base.OnMouseMove (e);
}
void PainWindow(Graphics gx)
{
Bitmap bmp = new Bitmap(this.Width,this.Height);
Graphics g = Graphics.FromImage(bmp);
Pen pen;
//左边框1
pen = new Pen(Color.FromArgb(133,150,202));
g.DrawLine(pen,new Point(0,0),new Point(0,this.Height));
//上边框1
g.DrawLine(pen,new Point(0,0),new Point(this.Width,0));
pen = new Pen(Color.White);
g.DrawLine(pen,new Point(1,1),new Point(1,this.Height-1));
g.DrawLine(pen,new Point(1,1),new Point(this.Width-1,1));
//右边框1
pen = new Pen(Color.FromArgb(90,108,162));
g.DrawLine(pen,new Point(this.Width-1,1),new Point(this.Width-1,this.Height));
//下边框1
g.DrawLine(pen,new Point(1,this.Height-1),new Point(this.Width,this.Height-1));
pen = new Pen(Color.FromArgb(191,202,235));
g.DrawLine(pen,new Point(this.Width-2,2),new Point(this.Width-2,this.Height-2));
g.DrawLine(pen,new Point(2,this.Height-2),new Point(this.Width-2,this.Height-2));
Brush brush = new SolidBrush(Color.FromArgb(206,216,239));
g.FillRectangle(brush,2,2,this.Width-4,this.Height-4);
if(this.BackColor.ToKnownColor()!=KnownColor.Control)
{
brush = new SolidBrush(this.BackColor);
g.FillRectangle(brush,4,4,this.Width-8,this.Height-8);
}
else
{
this.BackColor = Caption;
brush = new System.Drawing.Drawing2D.LinearGradientBrush(new Rectangle(new Point(4,4),new Size(this.Width-8,20)),Color.FromArgb(248,248,248),Color.FromArgb(220,226,240),3600,true);
g.FillRectangle(brush,4,4,this.Width-8,this.Height-8);
}
//画标题栏
brush = new System.Drawing.Drawing2D.LinearGradientBrush(new Rectangle(new Point(4,4),new Size(this.Width-8,20)),Color.FromArgb(192,208,240),Color.FromArgb(248,248,248),120,true);
g.FillRectangle(brush,4,4,this.Width-8,20);
//画图标和标题
DrawIcon(g);
DrawText(g);
//画按钮
if(!this.isDialog)
{
this.DrawMinButton1(g);
if(this.MaximizeBox)
this.DrawMaxButton1(g);
}
this.DrawCloseButton1(g);
gx.DrawImage(bmp,0,0);
}
void DrawIcon(Graphics g)
{
g.DrawIcon(this.Icon,new Rectangle(new Point(6,6),new Size(16,16)));
}
void DrawText(Graphics g)
{
Brush brush = new SolidBrush(Color.FromArgb(61,77,129));
g.DrawString(this.Text,new Font("tohoma",9),brush,new Point(26,6),StringFormat.GenericDefault);
}
void DrawMinButton1(Graphics g)
{
//最小化
Brush brush = new SolidBrush(Color.FromArgb(128,144,168));
g.FillRectangle(brush,this.Width-57,6,16,16);
brush = new System.Drawing.Drawing2D.LinearGradientBrush(new Rectangle(new Point(6,this.Width-63),new Size(17,17)),Color.FromArgb(199,207,231),Color.FromArgb(248,248,248),System.Drawing.Drawing2D. LinearGradientMode.Vertical);
g.FillRectangle(brush,this.Width-56,7,14,14);
Pen pen;
if(this.MinimizeBox)
pen = new Pen(Color.FromArgb(48,64,120),3);
else
pen = new Pen(Color.Silver,3);
g.DrawLine(pen,new Point(this.Width-53,17),new Point(this.Width-46,17));
}
void DrawMinButton2(Graphics g)
{
//最小化
Brush brush = new SolidBrush(Color.FromArgb(128,144,168));
g.FillRectangle(brush,this.Width-57,6,16,16);
brush = new System.Drawing.Drawing2D.LinearGradientBrush(new Rectangle(new Point(6,this.Width-63),new Size(17,17)),Color.White,Color.Snow,System.Drawing.Drawing2D. LinearGradientMode.Vertical);
g.FillRectangle(brush,this.Width-56,7,14,14);
Pen pen;
if(this.MinimizeBox)
pen = new Pen(Color.FromArgb(48,64,120),3);
else
pen = new Pen(Color.Silver,3);
g.DrawLine(pen,new Point(this.Width-53,17),new Point(this.Width-46,17));
}
void DrawMaxButton1(Graphics g)
{
//最大化或者恢复
Brush brush = new SolidBrush(Color.FromArgb(128,144,168));
g.FillRectangle(brush,this.Width-40,6,16,16);
brush = new System.Drawing.Drawing2D.LinearGradientBrush(new Rectangle(new Point(6,this.Width-63),new Size(17,17)),Color.FromArgb(199,207,231),Color.FromArgb(248,248,248),System.Drawing.Drawing2D. LinearGradientMode.Vertical);
g.FillRectangle(brush,this.Width-39,7,14,14);
if(!isMax)
{
brush = new SolidBrush(Color.FromArgb(48,64,120));
g.FillRectangle(brush,this.Width-37,9,10,10);
Pen pen = new Pen(Color.White,6);
g.DrawLine(pen,new Point(this.Width-36,15),new Point(this.Width-28,15));
}
else
{
brush = new SolidBrush(Color.FromArgb(48,64,120));
g.FillRectangle(brush,this.Width-34,9,7,7);
Pen pen = new Pen(Color.White,4);
g.DrawLine(pen,new Point(this.Width-33,13),new Point(this.Width-28,13));
g.FillRectangle(brush,this.Width-37,12,7,7);
g.DrawLine(pen,new Point(this.Width-36,16),new Point(this.Width-31,16));
}
}
void DrawMaxButton2(Graphics g)
{
//最大化或者恢复
Brush brush = new SolidBrush(Color.FromArgb(128,144,168));
g.FillRectangle(brush,this.Width-40,6,16,16);
brush = new System.Drawing.Drawing2D.LinearGradientBrush(new Rectangle(new Point(6,this.Width-63),new Size(17,17)),Color.White,Color.Snow,System.Drawing.Drawing2D. LinearGradientMode.Vertical);
g.FillRectangle(brush,this.Width-39,7,14,14);
if(!isMax)
{
brush = new SolidBrush(Color.FromArgb(48,64,120));
g.FillRectangle(brush,this.Width-37,9,10,10);
Pen pen = new Pen(Color.White,6);
g.DrawLine(pen,new Point(this.Width-36,15),new Point(this.Width-28,15));
}
else
{
brush = new SolidBrush(Color.FromArgb(48,64,120));
g.FillRectangle(brush,this.Width-34,9,7,7);
Pen pen = new Pen(Color.White,4);
g.DrawLine(pen,new Point(this.Width-33,13),new Point(this.Width-28,13));
g.FillRectangle(brush,this.Width-37,12,7,7);
g.DrawLine(pen,new Point(this.Width-36,16),new Point(this.Width-31,16));
}
}
void DrawCloseButton1(Graphics g)
{
//关闭
Brush brush = new SolidBrush(Color.FromArgb(128,144,168));
g.FillRectangle(brush,this.Width-23,6,16,16);
brush = new System.Drawing.Drawing2D.LinearGradientBrush(new Rectangle(new Point(6,this.Width-63),new Size(17,17)),Color.FromArgb(199,207,231),Color.FromArgb(248,248,248),System.Drawing.Drawing2D. LinearGradientMode.Vertical);
g.FillRectangle(brush,this.Width-22,7,14,14);
Pen pen = new Pen(Color.FromArgb(48,64,120),2);
g.DrawLine(pen,new Point(this.Width-20,9),new Point(this.Width-11,18));
g.DrawLine(pen,new Point(this.Width-11,9),new Point(this.Width-20,18));
}
void DrawCloseButton2(Graphics g)
{
//关闭
Brush brush = new SolidBrush(Color.FromArgb(128,144,168));
g.FillRectangle(brush,this.Width-23,6,16,16);
brush = new System.Drawing.Drawing2D.LinearGradientBrush(new Rectangle(new Point(6,this.Width-63),new Size(17,17)),Color.Red,Color.Snow,System.Drawing.Drawing2D. LinearGradientMode.Vertical);
g.FillRectangle(brush,this.Width-22,7,14,14);
Pen pen = new Pen(Color.FromArgb(48,64,120),2);
g.DrawLine(pen,new Point(this.Width-20,9),new Point(this.Width-11,18));
g.DrawLine(pen,new Point(this.Width-11,9),new Point(this.Width-20,18));
}
Windows 窗体设计器生成的代码#region Windows 窗体设计器生成的代码
/**//// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.ControlMenu = new System.Windows.Forms.ContextMenu();
this.menuRestore = new System.Windows.Forms.MenuItem();
this.menuMove = new System.Windows.Forms.MenuItem();
this.menuSize = new System.Windows.Forms.MenuItem();
this.menuMin = new System.Windows.Forms.MenuItem();
this.menuMax = new System.Windows.Forms.MenuItem();
this.menuItem6 = new System.Windows.Forms.MenuItem();
this.menuClose = new System.Windows.Forms.MenuItem();
//
// ControlMenu
//
this.ControlMenu.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
this.menuRestore,
this.menuMove,
this.menuSize,
this.menuMin,
this.menuMax,
this.menuItem6,
this.menuClose});
//
// menuRestore
//
this.menuRestore.Enabled = false;
this.menuRestore.Index = 0;
this.menuRestore.Text = "还原(&R)";
//
// menuMove
//
this.menuMove.Index = 1;
this.menuMove.Text = "移动(&M)";
this.menuMove.Click += new System.EventHandler(this.menuMove_Click);
//
// menuSize
//
this.menuSize.Index = 2;
this.menuSize.Text = "大小(&S)";
this.menuSize.Click += new System.EventHandler(this.menuSize_Click);
//
// menuMin
//
this.menuMin.Index = 3;
this.menuMin.Text = "最小化(&N)";
this.menuMin.Click += new System.EventHandler(this.menuMin_Click);
//
// menuMax
//
this.menuMax.Index = 4;
this.menuMax.Text = "最大化(&X)";
this.menuMax.Click += new System.EventHandler(this.menuMax_Click);
//
// menuItem6
//
this.menuItem6.Index = 5;
this.menuItem6.Text = "-";
//
// menuClose
//
this.menuClose.DefaultItem = true;
this.menuClose.Index = 6;
this.menuClose.Shortcut = System.Windows.Forms.Shortcut.AltF4;
this.menuClose.Text = "关闭(&C)";
this.menuClose.Click += new System.EventHandler(this.menuClose_Click);
//
// WuyinMsnForm
//
this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
this.ClientSize = new System.Drawing.Size(160, 120);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
this.Name = "WuyinMsnForm";
this.Text = "Form1";
this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Form1_KeyDown);
this.MouseDown += new System.Windows.Forms.MouseEventHandler(this.Form1_MouseDown);
this.SizeChanged += new System.EventHandler(this.Form1_SizeChanged);
this.Load += new System.EventHandler(this.WuyinMsnForm_Load);
this.DoubleClick += new System.EventHandler(this.Form1_DoubleClick);
this.MouseUp += new System.Windows.Forms.MouseEventHandler(this.Form1_MouseUp);
this.LocationChanged += new System.EventHandler(this.Form1_LocationChanged);
this.MouseMove += new System.Windows.Forms.MouseEventHandler(this.Form1_MouseMove);
}
#endregion
protected override void OnCreateControl()
{
base.OnCreateControl ();
}
private void Form1_DoubleClick(object sender, EventArgs e)
{
if(!this.isDialog)
{
Point p = new Point(0,0);
GetCursorPos(out p);
if(p.X - this.Location.X>=this.Width-70 || p.Y - this.Location.Y>=20)
return;
if(this.Size.Width >=Screen.AllScreens[0].WorkingArea.Size.Width && this.Size.Height>=Screen.AllScreens[0].WorkingArea.Size.Height)
Restore();
else
{
Max();
}
}
}
[DllImport("user32")] public static extern int GetCursorPos(out Point lpPoint);
[DllImport("user32")] public static extern int GetSystemMenu(HWND hwnd, int bRevert);
[DllImport("user32")] public static extern int LoadMenu(HANDLE hInstance, string lpString);
//[DllImport("user32")] public static extern int MoveWindow(HWND hwnd, int x, int y, int nWidth, int nHeight, int bRepaint);
void Restore()
{
//MessageBox.Show(String.Format("W:{0},H:{1}",size.Width,size.Height));
this.Size=this.size;
this.Location = this.location;
this.WindowState=FormWindowState.Normal;
this.isMax=false;
this.Invalidate();
this.menuMax.Enabled=true;
this.menuRestore.Enabled=false;
this.menuSize.Enabled=true;
this.menuMove.Enabled=true;
//this.PainWindow(g);
}
void Max()
{
//MessageBox.Show(String.Format("W:{0},H:{1}",size.Width,size.Height));
//this.location = this.Location;
//this.size = this.Size;
this.isMax = true;
this.Size = Screen.AllScreens[0].WorkingArea.Size;
this.Location=new Point(0,0);
this.Invalidate();
this.menuMax.Enabled=false;
this.menuRestore.Enabled=true;
this.menuSize.Enabled=false;
this.menuMove.Enabled=false;
//this.PainWindow(g);
}
void CgBt(MouseEventArgs e)
{
if(e.X>this.Width-23 && e.X<this.Width-7 && e.Y>7 && e.Y<20)
{
this.DrawCloseButton2(g);
return;
}
else
{
this.DrawCloseButton1(g);
}
if(this.isDialog)
return;
if(e.X>this.Width-57 && e.X<this.Width-41 && e.Y>7 && e.Y<22)
{
this.DrawMinButton2(g);
return;
}
else
{
this.DrawMinButton1(g);
}
if(e.X>this.Width-40 && e.X<this.Width-24 && e.Y>7 && e.Y<22)
{
this.DrawMaxButton2(g);
return;
}
else
{
this.DrawMaxButton1(g);
}
}
private void Form1_MouseMove(object sender, MouseEventArgs e)
{
if(e.X>this.Width-70 && e.Y<25)
CgBt(e);
if(isMax)
return;
CursorResizeForm(e,this);
if(e.Button==MouseButtons.Left && e.Y>0 && e.Y<30 && e.X<this.Width-70 && e.Y<=20)
this.Location=new Point(Control.MousePosition.X-p.X,Control.MousePosition.Y-p.Y);
}
private void CursorResizeForm(MouseEventArgs e,Control control)
{ //鼠标控制窗体大小
if(e.Y>control.Height-10 && e.Y<control.Height && e.X>control.Width-10 && e.X<control.Width)
control.Cursor=System.Windows.Forms.Cursors.SizeNWSE;
else if(e.X>control.Width-6 && e.X<control.Width && control.Cursor!=System.Windows.Forms.Cursors.SizeNWSE)
control.Cursor=System.Windows.Forms.Cursors.SizeWE;
else if(e.Y>control.Height-6 && e.Y<control.Height && control.Cursor!=System.Windows.Forms.Cursors.SizeNWSE)
control.Cursor=System.Windows.Forms.Cursors.SizeNS;
else if(e.X>0 && e.X<6 && control.Cursor!=System.Windows.Forms.Cursors.SizeNESW)
control.Cursor=System.Windows.Forms.Cursors.SizeWE;
else if(!cursor)
control.Cursor=Cursors.Default;
if(e.Button==MouseButtons.Left)
{
if(control.Cursor==System.Windows.Forms.Cursors.SizeWE && e.X>16)
control.Width=Control.MousePosition.X-control.Left+3;
else if(control.Cursor==Cursors.SizeNWSE)
{
control.Width=Control.MousePosition.X-control.Left+3;
control.Height=Control.MousePosition.Y-control.Top+3;
}
else if(control.Cursor==System.Windows.Forms.Cursors.SizeNS)
control.Height=Control.MousePosition.Y-control.Top+3;
}
}
private void Form1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
if(this.isDialog)
return;
cursor=true;
p=new Point(e.X,e.Y);
//location = this.Location;
//size = this.Size;
if(e.Button==MouseButtons.Right && e.X>0 && e.X<this.Width - 70 && e.Y>0 && e.Y<22)
{
this.ControlMenu.Show(this,new Point(e.X,e.Y));
return;
}
if(e.Button==MouseButtons.Left && e.X>0 && e.X<26 && e.Y>0 && e.Y<22)
this.ControlMenu.Show(this,new Point(0,20));
}
private void Form1_MouseUp(object sender, MouseEventArgs e)
{
if(e.Button!=MouseButtons.Left)
return;
cursor=false;
//三个控制按钮的
if(e.X>this.Width-24 && e.X<this.Width-6 && e.Y>7 && e.Y<20)
Close();
if(this.isDialog)
return;
if(e.X>this.Width-57 && e.X<this.Width-48 && e.Y>7 && e.Y<20)
this.WindowState=FormWindowState.Minimized;
if(e.X>this.Width-48 && e.X<this.Width-23 && e.Y>7 && e.Y<20)
{
if(isMax)
Restore();
else
Max();
}
}
private void Form1_SizeChanged(object sender, EventArgs e)
{
if(this.Size.Width<=20 || this.Size.Height<=20)
return;
if(!isMax)
{
this.location = this.Location;
this.size=this.Size;
}
//this.PainWindow(g);
}
protected override void DefWndProc(ref Message m)
{
//MessageBox.Show(m.ToString());
base.DefWndProc (ref m);
}
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if(e.Alt && e.KeyCode==Keys.Space)
this.ControlMenu.Show(this,new Point(4,22));
}
private void menuClose_Click(object sender, System.EventArgs e)
{
Close();
}
private void menuMax_Click(object sender, System.EventArgs e)
{
Max();
}
private void menuMin_Click(object sender, System.EventArgs e)
{
this.WindowState=FormWindowState.Minimized;
}
private void menuSize_Click(object sender, System.EventArgs e)
{
Pen pen = new Pen(Color.Black,4);
g.DrawLine(pen,new Point(0,0),new Point(0,this.Height));
g.DrawLine(pen,new Point(0,0),new Point(this.Width,0));
g.DrawLine(pen,new Point(this.Width,0),new Point(this.Width,this.Height));
g.DrawLine(pen,new Point(0,this.Height),new Point(this.Width,this.Height));
this.Cursor = Cursors.SizeAll;
}
private void menuMove_Click(object sender, System.EventArgs e)
{
Pen pen = new Pen(Color.Black,4);
g.DrawLine(pen,new Point(0,0),new Point(0,this.Height));
g.DrawLine(pen,new Point(0,0),new Point(this.Width,0));
g.DrawLine(pen,new Point(this.Width,0),new Point(this.Width,this.Height));
g.DrawLine(pen,new Point(0,this.Height),new Point(this.Width,this.Height));
mouse_event(MouseEvents.MOUSEEVENTF_MOVE,this.Location.X + this.Width/2,this.Location.Y + this.Height/2,0,0);
//MoveWindow(this.Handle,0,0,this.Width,this.Height,0);
this.Cursor = Cursors.SizeAll;
}
/**//// <summary>
/// 模拟鼠标事件
/// </summary>
/// <param name="dwFlags">鼠标事件的Enum</param>
/// <param name="dx">X座标</param>
/// <param name="dy">Y座标</param>
/// <param name="cButtons"></param>
/// <param name="dwExtraInfo"></param>
[DllImport("user32.dll")]
public static extern void mouse_event (MouseEvents dwFlags,long dx, long dy,long cButtons,long dwExtraInfo);
/**//// <summary>
/// 定义模拟鼠标的常数
/// </summary>
public enum MouseEvents:uint
{
MOUSEEVENTF_LEFTDOWN = 0x2,
MOUSEEVENTF_LEFTUP = 0x4,
MOUSEEVENTF_MIDDLEDOWN = 0x20,
MOUSEEVENTF_MIDDLEUP = 0x40,
MOUSEEVENTF_MOVE = 0x1,
MOUSEEVENTF_ABSOLUTE = 0x8000,
MOUSEEVENTF_RIGHTDOWN = 0x8,
MOUSEEVENTF_RIGHTUP = 0x10,
}
private void Form1_LocationChanged(object sender, EventArgs e)
{
if(!isMax)
location=Location;
}
protected override void OnControlAdded(ControlEventArgs e)
{
if(e.Control.Top<24)e.Control.Top += 24;
if(e.Control.Left<2)e.Control.Left+=2;
/**//*
if(e.Control.BackColor.ToKnownColor()==KnownColor.Control)
{
//((MyControl)e.Control).DoPaint();
//Color c = Color.FromArgb(255,220,226,240);
//e.Control.BackColor=c;
int C = (Win32.GDI.GetPixel((IntPtr)Win32.User.GetWindowDC((IntPtr)0),e.Control.Location.X,e.Control.Location.Y));
Color c = Color.FromName(C.ToString());
e.Control.BackColor = c;
}
base.OnControlAdded (e);
*/
}
private void WuyinMsnForm_Load(object sender, System.EventArgs e)
{
this.Height+=22;
this.Width+=2;
}
}
public class MyControl:Control
{
public void DoPaint()
{
}
public void DoPaint(PaintEventArgs e)
{
if(this.GetType().ToString()=="System.Windows.Forms.Label")
{
e.Graphics.DrawString(this.Text,this.Font,new SolidBrush(this.ForeColor),this.Location,StringFormat.GenericDefault);
return;
}
this.BackColor= Color.Empty;
Brush brush = new System.Drawing.Drawing2D.LinearGradientBrush(new Rectangle(new Point(4,4),new Size(this.Width-8,20)),Color.FromArgb(248,248,248),Color.FromArgb(220,226,240),3600,true);
e.Graphics.FillRectangle(brush,e.ClipRectangle.X,e.ClipRectangle.Y,e.ClipRectangle.Width,e.ClipRectangle.Height);
}
protected override void OnPaint(PaintEventArgs e)
{
//base.OnPaint (e);
DoPaint(e);
}
}
}