//步骤//1.导入代码//2.事件中添加form_1mousedown函数//3.在load函数中定义AnimateWindow语句,注意有两个引用。//4.DllImport若有错误,按shift+alt+F10添加第一个解决 [System.Runtime.InteropServices.DllImport("user32.dll")]//api加载声明 protected static extern bool AnimateWindow(IntPtr hWnd, int dwTime, int dwFlags);//定义AnimateWindow public const Int32 AW_BLEND = 0x00080000; public const Int32 AW_CENTER = 0x00000010; public const Int32 AW_ACTIVATE = 0x00020000; public const Int32 AW_HIDE = 0x00010000; public const Int32 AW_SLIDE = 0x00040000; public Form1() { InitializeComponent(); SetClassLong(this.Handle, GCL_STYLE, GetClassLong(this.Handle, GCL_STYLE) | CS_DropSHADOW);//API函数加载
,实现窗体边框阴影效果
this.SetStyle(ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint |ControlStyles.OptimizedDoubleBuffer, true);
} #region 窗体拖动代码 // public const int WM_NCLBUTTONDOWN = 0xA1; public const int HTCAPTION = 0x2;[DllImportAttribute("user32.dll")]
public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);[DllImportAttribute("user32.dll")]
public static extern bool ReleaseCapture(); private void Form1_MouseDown(object sender, MouseEventArgs e)//在窗体事件中手动添加,注意引用,无引用则无法完成 { ReleaseCapture(); SendMessage(Handle, WM_NCLBUTTONDOWN, HTCAPTION, 0); } #endregion #region 窗体边框阴影效果 const int CS_DropSHADOW = 0x20000; const int GCL_STYLE = (-26); //声明win32 api [DllImport("user32.dll", CharSet = CharSet.Auto)] public static extern int SetClassLong(IntPtr hwnd, int nIndex, int deNewLong); [DllImport("user32.dll", CharSet = CharSet.Auto)] public static extern int GetClassLong(IntPtr hwnd, int nIndex); #endregionprivate void Form1_Load(object sender, EventArgs e)
{ AnimateWindow(this.Handle, 500, AW_BLEND | AW_CENTER | AW_ACTIVATE);}
private void Form1_FormClosing(object sender, FormClosingEventArgs e) { AnimateWindow(this.Handle, 500, AW_CENTER | AW_BLEND | AW_HIDE); }